简介

  集群当中挂载数据卷的方式采用--mount标志。而且-mount标记相比于-v意图更明确.

  如果不进行数据挂载的话,当容器不在时,对应的数据也不会持久存在

存储方式

  • 卷存储,由docker管理使用docker -volume create创建管理。卷也是docker官方推荐的持久化方式
  • 绑定挂载,就是把宿主机的地址挂载到容器内
  • tmpfs挂载只存储在主机系统的内存当中。(用到的比较少)

绑定目录

  采用-v的方式挂载容器。该文件或目录不需要在Docker主机上已经存在,如果尚不存在,则按需创建

  • 采用-v的形式宿主机的文件会覆盖data里面的文件。
  • 如果宿主机目录为空的话,容器内挂载文件会清空
docker run -tid -v /etc/docker/redis/data:data --name redis redis

1.自动创建目录

# 该路径现在不存在,run之后自动生成
docker run -tid --name nginx -v /root/data/nginxtest:/etc/nignx/ nginx

  图中可见,在运行时会自动创建宿主机目录,但是内容为空,并且容器也无法启动,会报错:未找到nginx.conf 也就是说**在映射的时候,宿主机没有nginx.conf**文件.所以导致nginx无法启动

2.自动创建文件

  这里会看到直接报错。

3.宿主机已存在文件挂载

  正常挂载

4.挂载已存在目录

  正常挂载

总结

1.挂载空目录容器内的信息会被覆盖.

2.挂载目录时会自动创建目录,但是文件不会创建

3.如果需要挂载目录,需要先把需要挂载的内容cp到宿主机,然后执行挂载

创建数据卷

  数据卷项目绑定d目录有如下优点:

  • 更容易迁移和备份
  • 可以使用docker cli命令管理卷
  • 卷在liunx和windows 都可以使用
  • 可在多个容器之间共享数据卷
# 创建数据卷
docker volume create my-data # 查看信息
docker volume inspect my-data # 查看所有卷信息
docker volume ls # 删除卷
docker volume rm my-data

挂载数据卷

  首先需要创建数据卷,当然也可以在创建service的时候,指定数据卷名称,会自动创建一个数据卷,集群中的数据卷都是采用--mount参数进行挂载。

  type为bind的时候,挂载的是主机路径,必须引用主机上现有的路径,并且不会自动创建该路径,如果路径不存在,服务创建失败

  type为volume的时候挂载的是数据卷。

 # 挂载数据卷
docker service create --mount type=volume,src=redisdata,dst=/data --name redis redis # 挂载目录
docker service create --mount type=bind,src=/data,dst=/data --name redis redis

Docker 挂载的更多相关文章

  1. Docker挂载主机目录Docker访问出现Permission denied的解决办法

    Docker挂载主机目录,访问相应的文件出现Premission denied的权限访问问题,   [root@localhost soft]# docker images REPOSITORY    ...

  2. docker挂载本地目录和数据卷容器

    1.docker挂载本地目录 docker可以支持把一个宿主机上的目录挂载到镜像里. 交互模式运行docker run -it -v /home/dock/Downloads:/usr/Downloa ...

  3. docker挂载volume的用户权限问题,理解docker容器的uid

    docker挂载volume的用户权限问题,理解docker容器的uid 在刚开始使用docker volume挂载数据卷的时候,经常出现没有权限的问题. 这里通过遇到的问题来理解docker容器用户 ...

  4. docker挂载本地目录的方法总结

    docker挂载本地目录的方法总结: Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定. 譬如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录, ...

  5. win10专业版Hyper-v下Docker挂载volume的方式使用Gitlab(汉化版)保存资料数据(使用外部redis)

    目录 话题 (191) 笔记 (137) 资料区 (2) 评价 (33) 介绍 讨论区 话题 win10专业版Hyper-v下Docker挂载volume的方式使用Gitlab(汉化版)保存资料数据( ...

  6. docker 挂载目录挂载不上**

    最近做项目做一个shared Dynamodb, 使用docker挂载一个image,发现怎么都挂载不上, 使用 $ pwd E:\Work\Aws\git\schema\dynamodb\local ...

  7. docker挂载数据卷

    1.Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker中称为数据卷,简单的理解就是将数据持久化的工具. 2.在使用docker容器的时候,会产生一系列的数据文件,这些数据文件在我们 ...

  8. docker挂载NVIDIA显卡运行pytorch

    本文为作者原创,转载请注明出处(http://www.cnblogs.com/mar-q/)by 负赑屃   写在前面: 请参考之前的文章安装好CentOS.NVIDIA相关驱动及软件.docker及 ...

  9. 【原创】大叔经验分享(32)docker挂载文件修改生效

    docker经常需要挂载文件到容器中,比如启动nginx # docker run -d --name test_nginx -v /tmp/nginx.conf:/etc/nginx/nginx.c ...

  10. win7 docker 挂载共享目录

    在 win7 下用 docker 不像 win10 那样方便,安装包都不一样. 在 win7 下共享一个目录的方法如下: 1. 先设置 win7 到 VirtualBox 中 docker 用的那个虚 ...

随机推荐

  1. xshell界面变成半透明的怎么办?

    在工具——选项查看选项卡去掉使窗口透明的前的勾就可以了

  2. Centos 6.4 安装Mplayer 播放器

    1.Download the rpmforge-release package. URL1:x86_64.rmp URL2:tar.gz    推荐!!! 2.Install DAG's GPG ke ...

  3. SpringMVC的项目架构思想

    SpringMVC的项目架构思想 一.DO和Model的区别 DO是对数据库表的映射.Model是处理业务逻辑的模型(领域模型).例如:用户信息表和用户密码表分别是两个DO,但是对于实体用户来说,密码 ...

  4. 自描述C++部分面试题集

    1.谈谈啥叫对象成员以及对象成员的构造函数调用调用方式. 在类中定义的数据成员一般都是基本的数据类型.但是类中的成员也可以是对象,叫做对象成员. C++中对对象的初始化时非常重要的操作,当创建一个对象 ...

  5. 如何将less编译成css文件__less自动编译成css的方法总结

    作为css的预处理less,拥有着比css更快捷方便,扩展了css的变量.Mixin.函数等特性,使 CSS 更易维护和扩展.  如何你已经回使用css,那么less就很容易上手了.如果不使用less ...

  6. Django---进阶16<XSS攻击>

    目录 后台管理 添加文章 kindeditor富文本编辑器 编辑器上传图片 修改用户头像 bbs项目总结 后台管理 """ 当一个文件夹下文件比较多的时候 你还可以继续创 ...

  7. Fetch.ai的突破使急速闪电共识成为现实

    Jonathan Ward 区块链的终结问题是由于技术限制,它已经成为区块链技术被广泛采用的障碍.用外行的话来说,终结时间可以看作是事务首次提交到网络并被确认为有效之间的等待时间.为了成功地革新我们的 ...

  8. .Net Core微服务入门全纪录(八)——Docker Compose与容器网络

    Tips:本篇已加入系列文章阅读目录,可点击查看更多相关文章. 前言 上一篇[.Net Core微服务入门全纪录(七)--IdentityServer4-授权认证]中使用IdentityServer4 ...

  9. PHP使用array_filter查找二维数组中符合字段和字段值的数据集合

    1.方法: /** * 获取符合字段和字段值的数组集合 * @param array $data 待过滤数组 * @param string $field 要查找的字段 * @param $value ...

  10. WeChat小程序开发-初学者笔记(一)

    WeChat小程序开发学习第一天: 完成学习目标: 1.安装并了解Wechat小程序的基本环境, 2.可以利用已学知识的结合简单实现helloWorld界面. 学习过程: 1.首先在微信平台上进行相关 ...