Why Data Volumes?  来自马哥教育

Data volumes

Volume types 
绑定挂载卷:在宿主机和容器上各指明绑定路径才能进行绑定。
docker管理卷:在容器内指定挂载点,而被挂载点即宿主机上的挂载路径不需要用户创建,而是由docker daemon维护
 
在容器中使用Volumes(即使用docker管理卷)

-v /data  路径默认不存在
查看/data属于哪个路径?
# docker inspect b1 那么在容器b1的data目录下是可以看到此文件的 同时在容器内的data目录下操作,比如新建文件等在宿主机也是可以看到的。 以上就是有docker管理的卷
另外一种类型:绑定挂载卷
删除之前的镜像,重新启动 # docker run --name b1 -it --rm -v /data/volumes/b1:/data busybox      //  -v /data/volumes指定宿主机路径,把这个路径关联到b1上的data目录下  注意,即使在宿主机上/data/volumes/b1这个目录之前不存在,在挂载的那一刻也被在宿主机上创建的,但必须明确指定这个路径,
其他都与docker管理卷相似,在容器创建文件在宿主机上可以看到,相反亦可以。
以上两种存储都具有持久能力,例如:
[root@node1 ~]# cd /data/volumes/b1/
[root@node1 b1]# vim index.html   //在宿主机上的/data/volumes/data目录下创建一个网页文件 虽然上述容器b1退出并删除,但是之前创建的index.html仍然是存在的。
下次在启动容器b1时,仍然把宿主上的挂载目录指定为之前创建的目录/data/valumes/data,则仍然可以看到,注意,一定要和之前的容器相同。 因此就有了持久功能。  
多个容器共享宿主机同一个存储卷
一个docker的目录能够与宿主机的目录建立关联关系,那么两个docker容器的目录就可以关联到宿主机的同一个目录上,这样就可以实现共享存储卷了。  
上述演示了两个容器共享一个宿主机存储卷,但是b2必须使用 -v /data/volumes/b1:/data 指定b1的目录,可以在初始化容器b2时采用直接复制b1的存储卷路径
可以创建一个容器,这个容器可以不启动,只要存在就行,这个容器作为其他生产容器的基础架构容器。在启动其他生产容器时,直接复制基础架构容器的存储设置即可。
使用场景  
Sharing volumes

# docker run --name infracon -it -v /data/infracon/volume/:/data/web/html busybox  //创建一个基础服务的容器,可以不启动,这里使用交互式 -it 是为了演示效果。
/ #                             //-v /data/infracon/volume/ 指定宿主机卷路径   /data/web/html :关联容器的路径
# docker run --name nginx --network container:infracon --volumes-from infracon -it busybox   
    //另起一个窗口,--network container:infracon表示nginx容器加入到基础容器infracon的网络中,--volumes-from infracon表示使用容器infracon的挂载卷路径
# docker inspect infracon # docker inspect nginx  //同上  

docker存储卷、基于docker file做镜像文件,以及使用hap做私有仓库

6、Docker存储卷的更多相关文章

  1. Docker系列05—Docker 存储卷详解

    本文收录在容器技术学习系列文章总目录 1.存储卷介绍 1.1 背景 (1)docker 的 AFUS 分层文件系统 docker镜像由多个只读层叠加面成,启动容器时,docker会加载只读镜像层并在镜 ...

  2. Docker存储卷(V18.X)

    简介 介绍 Docker的存储卷称之为volume,本质上容器上的一个或者多个目录,而这些目录绕过了联合文件系统,与宿主机中的目录或者其他容器目录进行了绑定关系,这种绑定关系可以看作Linux的mou ...

  3. Docker存储卷

    六.Docker 存储卷(volume) COW:写时复制 Bind mount volume:手动mount绑定的卷 # docker run --name centos-3 -it -v /dat ...

  4. docker 存储卷 Volumes

    一,docker容器面临的困境: 容器运行中产生的数据,是放到容器栈的最顶层,当容器停止并被删除后,这些数据就被删除了. docker采用COW(写时复制)策略,导致性能低下.比如有个mysql容器, ...

  5. Docker存储卷篇

    Docker存储卷篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.    一.写时复制(COW)机制 所谓写时复制的效果如上图所示: Docker镜像由多个只读层叠加而成,启动容器 ...

  6. Docker 学习6 Docker存储卷

    一.什么是存储卷 二.为什么要用到数据卷 三.数据卷是怎么被管理的 四.存储卷种类 五.在容器中使用存储卷 1.只声明容器路径 [root@localhost docker]# docker run ...

  7. 5.Docker存储卷

    一.概述 1.Docker底层存储机制 Docker镜像由多个只读层叠加而成,启动容器时,Docker会加载只读镜像层并在镜像栈顶部添加一个读写层. 如果运行中的容器修改了现有的一个已经存在的文件,那 ...

  8. Docker系列03—Docker 存储卷

    一.存储卷介绍 1.1 背景 Docker 的 AFUS 分层文件系统 docker镜像由多个只读层叠加而成,启动容器时,docker会加载只读镜像层并在镜像栈顶部加一个读写层: 如果运行的容器修改了 ...

  9. 你必须知道的Docker数据卷(Volume)

    本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 一.将Docker数据挂载到容器 在Docker中,要想实现数据的持久化(所谓 ...

随机推荐

  1. C#返回JSON格式数据

    又类的属性生成json格式数据 using System; using System.Collections.Generic; using System.Linq; using System.Web; ...

  2. 深浅copy

    浅拷贝 只copy了一层 可哈希的变量改变则二者不同   不可哈希变量改变二者都改变深拷贝  全部都copy了 不论什么值改变 原值都改变呢 变量赋值.浅拷贝.深拷贝 1,创建变量 1.1不可变对象 ...

  3. 【Eclipse】-NO.163.Eclipse.1 -【Eclipse springboot 1.x 创建maven工程初始化报错】

    Style:Mac Series:Java Since:2018-09-10 End:2018-09-10 Total Hours:1 Degree Of Diffculty:5 Degree Of ...

  4. [LeetCode] 139. Word Break_ Medium tag: Dynamic Programming

    Given a non-empty string s and a dictionary wordDict containing a list of non-empty words, determine ...

  5. C# 合并只要有交集的所有集合

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  6. 最新阿里云服务器免费SSL证书配置HTTPS的两种方法(图文教程二)

    在大家学习如何利用免费SSL证书配置网站HTTPS之前,我们先要搞清楚为什么要开启HTTPS,这个绿色的小锁真的有用吗?所谓的HTTPS其实是(安全套接字层超文本传输协议)是以安全为目标的HTTP通道 ...

  7. 从网卡发送数据再谈TCP/IP协议—网络传输速度计算-网卡构造

    在<在深谈TCP/IP三步握手&四步挥手原理及衍生问题—长文解剖IP>里面提到 单个TCP包每次打包1448字节的数据进行发送(以太网Ethernet最大的数据帧是1518字节,以 ...

  8. WinForm中 Asp.Net Signalr消息推送测试实例

    p{ text-align:center; } blockquote > p > span{ text-align:center; font-size: 18px; color: #ff0 ...

  9. 使用python连接mysql/oracle

    最近python比较火,我本身觉得python这种语言速度也不快,做项目也一般,学他干啥?但是了解到python把其他语言的函数封装成了自己的包,用python就可以直接调用,感觉python还是值得 ...

  10. work-7.2

    安装ubuntu,jdk ,git,maven,Intellij. 配置GIT时,需要将在本地生成的公钥粘贴到服务端. 先占个座,具体过程待补充. -------------------------- ...