volumes:- /var/run/:/host/var/run/- ./channel-artifacts:/var/hyperledger/configs- ./fabric_logs:/tmp/fabric_logs/
    把容器中/tmp/fabric_logs目录映射到宿主机当前目录下的./fabric_logs目录下。这两个目录会共享数据。

1、运行命令:

docker run --name test -it -v /home/xqh/myimage:/data ubuntu /bin/bash

其中的 -v 标记 在容器中设置了一个挂载点 /data(就是容器中的一个目录),并将主机上的 /home/xqh/myimage
目录中的内容关联到 /data下。
这样在容器中对/data目录下的操作,还是在主机上对/home/xqh/myimage的操作,都是完全实时同步的,因为这两个目录实际都是指向主机目录。

2、运行命令:

docker run --name test1 -it -v /data ubuntu /bin/bash

上面-v的标记只设置了容器的挂载点,并没有指定关联的主机目录。这时docker会自动绑定主机上的一个目录。通过docker inspect
命令可以查看到。

“Mounts”: [
{
“Name”: “2aebfaef1bb42f2486ed236abe897441f64a3e880c64c012fca113022d3aec50”,
“Source”: “/local/docker/var/lib/docker/volumes/2aebfaef1bb42f2486ed236abe897441f64a3e880c64c012fca113022d3aec50/_data”,
“Destination”: “/local/daasdocker/sofeware”,
“Driver”: “local”,
“Mode”: “”,
“RW”: true,
“Propagation”: “”
},

上面 Mounts下的每条信息记录了容器上一个挂载点的信息,“Destination”
值是容器的挂载点,"Source"值是对应的主机目录。

可以看出这种方式对应的主机目录是自动创建的,其目的不是让在主机上修改,而是让多个容器共享。

二、通过dockerfile创建挂载点

上面介绍的通过docker run命令的-v标识创建的挂载点只能对创建的容器有效。

通过dockerfile的 VOLUME 指令可以在镜像中创建挂载点,这样只要通过该镜像创建的容器都有了挂载点。

还有一个区别是,通过 VOLUME 指令创建的挂载点,无法指定主机上对应的目录,是自动生成的。

语法:

VOLUME ["/var/log/"]
VOLUME /var/log
VOLUME /var/log /var/db
VOLUME ["/data1","/data2"]
上面的dockfile文件通过VOLUME指令指定了两个挂载点 /data1 和 /data2.

我们通过docker inspect 查看通过该dockerfile创建的镜像生成的容器

可以看到两个挂载点的信息。

三、容器共享卷(挂载点)

docker run --name test1 -it myimage /bin/bash

上面命令中的 myimage是用前面的dockerfile文件构建的镜像。 这样容器test1就有了 /data1 和 /data2两个挂载点。

下面我们创建另一个容器可以和test1共享 /data1 和 /data2卷 ,这是在 docker run中使用 --volumes-from标记,如:

可以是来源不同镜像,如:

docker run --name test2 -it --volumes-from test1  ubuntu  /bin/bash

也可以是同一镜像,如:

docker run --name test3 -it --volumes-from test1  myimage  /bin/bash

上面的三个容器 test1 , test2 , test3 均有 /data1 和 /data2 两个目录,且目录中内容是共享的,任何一个容器修改了内容,别的容器都能获取到。

docker中的volumes相关推荐

  1. Docker中的Docker volumes与Persistent Volume借鉴

    文章目录 <Docker中的Docker volumes与Persistent Volume借鉴> 引言 技术原理及概念 2.1. 基本概念解释 2.2. 技术原理介绍:算法原理,操作步骤 ...

  2. Docker的使用(五:Docker中的网络与数据管理)

    实验环境 三台运行有Ubuntu 16.04 操作系统的虚拟机,并每台主机中已安装docker环境: 学习目标 docker的网络管理 docker Swarm集群的使用 Volume数据卷的使用 实 ...

  3. 你在 Docker 中跑 MySQL?恭喜你,可以下岗了!

    欢迎关注方志朋的博客,回复"666"获面试宝典 容器的定义:容器是为了解决"在切换运行环境时,如何保证软件能够正常运行"这一问题. 目前,容器和 Docker ...

  4. docker部署python web应用_在 Docker 中运行一个 Python 的 Web 应用

    几周前, Elastic Beanstalk声明在AWS云中配置和管理Docker容器.在本文中,我们通过一个简单的注册表单页面应用去理解Docker部署过程,该表单使用Elastic Beansta ...

  5. 不建议在Docker中部署数据库

    近 2 年 Docker 非常的火热,各位开发者恨不得把所有的应用.软件都部署在 Docker 容器中,但是您确定也要把数据库也部署的容器中吗? 这个问题不是子虚乌有,因为在网上能够找到很多各种操作手 ...

  6. mysql自动从另外表取数_你在 Docker 中跑 MySQL?恭喜你,好下岗了!

    容器的定义:容器是为了解决"在切换运行环境时,如何保证软件能够正常运行"这一问题. 目前,容器和 Docker 依旧是技术领域最热门的词语,无状态的服务容器化已经是大势所趋,同时也 ...

  7. 如果在docker中部署tomcat,并且部署java应用程序

    2019独角兽企业重金招聘Python工程师标准>>> 如果在docker中部署tomcat,并且部署java应用程序 博客分类: docker 1.先说如何在docker中部署to ...

  8. docker 发布tomcat项目_在docker中部署tomcat并且部署java应用程序的步骤详解

    1.先说如何在docker中部署tomcat 第一步:root用户登录在系统根目录下创建文件夹tomcat7,命令如:mkdir tomcat7,并且切换到该目录下:cd tomcat7: 第二步:创 ...

  9. docker -v 挂载文件_浅谈关于docker中数据卷的操作,附带案例

    Volume数据卷的由来: Docker镜像是由多个文件系统(只读层)叠加而成.当我们启动一个容器的时候,Docker会加载只读镜像层并在其上添加一个读写层.如果运行中的容器修改了现有的一个已经存在的 ...

最新文章

  1. 'unicodeescape' codec can't decode bytes in position 16-17: malformed \N character escape
  2. C++11:move移动语义
  3. 2017年计算机基础知识答题宝典,2017年全国职称计算机考试答题技巧分享
  4. xml、网络编程、 反射
  5. linux shell脚本字符串 字段分隔符 存入数组 根据下标取值
  6. linux常用进程管理工具及查看
  7. gstreamer之RTSP Server一个进程提供多路不同视频
  8. 8086汇编语言程序设计典型题目
  9. 专业PLC数据采集软件PLC-Recorder通过ADS通讯进行倍福TwinCAT2和TwubCAT3数据采集的介绍
  10. matlab频率响应怎么求零极点,离散系统的频率响应分析和零极点分布.doc
  11. 会让你变得与众不同的22个技巧
  12. 排队器拦截_如何绕过浏览器的弹窗拦截机制
  13. 使用zxing生成彩色或带图片的二维码
  14. 运用selenium库写淘宝抢购详解【3】(文末附带源码)
  15. 从 Forces 开始分析责任链模式:「写一个 Discord 对话机器人」
  16. 新鲜新奇事物_用新鲜形容事物很新奇的句子
  17. 电影(0x05 排序)
  18. 插图 引用 同一行两个插图_案例研究产品设计中的动画插图
  19. 在这家不加班的 IT 公司里,我们是这样加班的
  20. angular中安装ng-alain 插件

热门文章

  1. CAN201 网络编程 笔记
  2. 计算机无法读取移动光驱,电脑检测不到光驱怎么办?
  3. 钱袋子往哪走?教你用Python爬取基金数据
  4. Vue install 报错 code EINTEGRITY
  5. 【QNX Hypervisor 2.2 用户手册】1.5 内存
  6. oracle 表空间不足解决办法
  7. Iron man2钢铁侠2
  8. ThinkPad X1 Extreme隐士 Ubuntu 18.04装机双显卡配置解决方法
  9. android按键模拟测试
  10. 注册石墨文档无法连接服务器,石墨文档没有访问权限怎么办