6、Docker存储卷
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存储卷的更多相关文章
- Docker系列05—Docker 存储卷详解
本文收录在容器技术学习系列文章总目录 1.存储卷介绍 1.1 背景 (1)docker 的 AFUS 分层文件系统 docker镜像由多个只读层叠加面成,启动容器时,docker会加载只读镜像层并在镜 ...
- Docker存储卷(V18.X)
简介 介绍 Docker的存储卷称之为volume,本质上容器上的一个或者多个目录,而这些目录绕过了联合文件系统,与宿主机中的目录或者其他容器目录进行了绑定关系,这种绑定关系可以看作Linux的mou ...
- Docker存储卷
六.Docker 存储卷(volume) COW:写时复制 Bind mount volume:手动mount绑定的卷 # docker run --name centos-3 -it -v /dat ...
- docker 存储卷 Volumes
一,docker容器面临的困境: 容器运行中产生的数据,是放到容器栈的最顶层,当容器停止并被删除后,这些数据就被删除了. docker采用COW(写时复制)策略,导致性能低下.比如有个mysql容器, ...
- Docker存储卷篇
Docker存储卷篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.写时复制(COW)机制 所谓写时复制的效果如上图所示: Docker镜像由多个只读层叠加而成,启动容器 ...
- Docker 学习6 Docker存储卷
一.什么是存储卷 二.为什么要用到数据卷 三.数据卷是怎么被管理的 四.存储卷种类 五.在容器中使用存储卷 1.只声明容器路径 [root@localhost docker]# docker run ...
- 5.Docker存储卷
一.概述 1.Docker底层存储机制 Docker镜像由多个只读层叠加而成,启动容器时,Docker会加载只读镜像层并在镜像栈顶部添加一个读写层. 如果运行中的容器修改了现有的一个已经存在的文件,那 ...
- Docker系列03—Docker 存储卷
一.存储卷介绍 1.1 背景 Docker 的 AFUS 分层文件系统 docker镜像由多个只读层叠加而成,启动容器时,docker会加载只读镜像层并在镜像栈顶部加一个读写层: 如果运行的容器修改了 ...
- 你必须知道的Docker数据卷(Volume)
本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 一.将Docker数据挂载到容器 在Docker中,要想实现数据的持久化(所谓 ...
随机推荐
- kubernetes安装
本文主要参考自: https://blog.csdn.net/real_myth/article/details/78719244 还有一份更适合在生产环境使用的超强高可用(多master,nginx ...
- MySQL中的EXPLAIN
使用EXPLAIN加上SELECT语句可以获取优化器的查询执行计划 MySQL会在查询上设置一个标记,当执行查询时,这个标记会返回关于在执行计划中每一步的信息,而不是执行它.它会返回一行或多行信息,一 ...
- 赶集网三年 DBA 总结(转)
2012年初入职赶集,当时处在流量讯猛增长的阶段,3年DBA生涯收获坡多,其实坑更多(泪... 后来在做开发时,慢慢体会到 ”运维“ 和 “开发” 确实存在沟通问题:知识不对称.如何解决呢?先总结下这 ...
- xcode 10 模拟器报错
xcode 10(也可能是任意版本)run 模拟器时,发现会报下面的错误. This app could not be installed at this time.Could not access ...
- T-SQL语言基础(2)之SQL Server体系结构
SQL Server 体系结构 SQL Server 实例 SQL Server 实例是指安装的一个 SQL Server 数据库引擎/服务.在同一台计算机上可以安装 SQL Server 的多个实例 ...
- 2019年 Gratner数据分析平台对比 - PowerBI大幅领先
先睹为快,看看你正在用的工具在哪里? 文末见2017-2018图 对比2019年, 1.ThoughtSpot好像发展很快 2.IBM...... 3.Microstrategy好像表现还不错 4.L ...
- iOS MJExtension的使用
前言: MJExtension是iOS的字典装模型的一个第三方框架.相对于JSONKit和SBJson相比MJExtension更简单易用.功能更强大. 安装: 使用CocoaPods导入(Cocoa ...
- 用html5实现音频播放器
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- Python_lambda
最近学习到python的lambda表达式也是匿名函数, lambda不需要使用def 语句这样标准的形式定义一个函数,并不需要花很多时间去额外定义一个不常用的函数.lambda的本省就是一个长度为一 ...
- WebApi接口访问异常问题。尝试创建“testController”类型的控制器时出错。请确保控制器具有无参数公共构造函数
本来运行的好好的webAPI 接口突然报了个 :“尝试创建“testController”类型的控制器时出错.请确保控制器具有无参数公共构造函数” 错误.耗了半宿最终解决了, 原因: api控制器中引 ...