Docker容器数据卷volumes-from
定义4个终端:
终端host
终端container dc01
终端container dc02
终端container dc03
各个容器之间的关系:
1、启动一个父容器dc01
启动一个父容器dc01,并在 dataVolumeContainer2 新增内容。
命令格式:docker run -it --name dc01 zzyy/centos
操作步骤如下:
终端container dc01:
创建并启动dc01容器,并在 dataVolumeContainer2 目录中添加 dc01.txt
[root@localhost mydocker]# docker run -it --name dc01 zzyy/centos
[root@3caa375ebfd9 /]# ll
total 12
-rw-r--r--. 1 root root 12030 Oct 6 19:15 anaconda-post.log
lrwxrwxrwx. 1 root root 7 Oct 6 19:14 bin -> usr/bin
drwxr-xr-x. 2 root root 6 Nov 27 03:02 dataVolumeContainer1
drwxr-xr-x. 2 root root 6 Nov 27 03:02 dataVolumeContainer2
drwxr-xr-x. 5 root root 360 Nov 27 03:02 dev
drwxr-xr-x. 1 root root 66 Nov 27 03:02 etc
drwxr-xr-x. 2 root root 6 Apr 11 2018 home
lrwxrwxrwx. 1 root root 7 Oct 6 19:14 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Oct 6 19:14 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 Apr 11 2018 media
drwxr-xr-x. 2 root root 6 Apr 11 2018 mnt
drwxr-xr-x. 2 root root 6 Apr 11 2018 opt
dr-xr-xr-x. 264 root root 0 Nov 27 03:02 proc
dr-xr-x---. 2 root root 114 Oct 6 19:15 root
drwxr-xr-x. 10 root root 130 Oct 6 19:15 run
lrwxrwxrwx. 1 root root 8 Oct 6 19:14 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 Apr 11 2018 srv
dr-xr-xr-x. 13 root root 0 Nov 27 02:53 sys
drwxrwxrwt. 7 root root 132 Oct 6 19:15 tmp
drwxr-xr-x. 13 root root 155 Oct 6 19:14 usr
drwxr-xr-x. 18 root root 238 Oct 6 19:14 var
[root@3caa375ebfd9 /]# cd dataVolumeContainer2/
[root@3caa375ebfd9 dataVolumeContainer2]# ls
[root@3caa375ebfd9 dataVolumeContainer2]# echo "container dc01 add"> dc01.txt
[root@3caa375ebfd9 dataVolumeContainer2]# ls
dc01.txt
[root@3caa375ebfd9 dataVolumeContainer2]# cat dc01.txt
container dc01 add
[root@3caa375ebfd9 dataVolumeContainer2]#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
终端host:
验证容器启动情况
[root@localhost _data]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3caa375ebfd9 zzyy/centos "/bin/sh -c /bin/bash" 22 minutes ago Up 22 minutes dc01
[root@localhost _data]#
1
2
3
4
2、dc02/dc03继承自dc01
–volumes-form
dc02/dc03分别在dataVolumeContainer2各自新增内容
命令格式
dc02的 格式:
docker run -it --name dc02 --volumes-from dc01 zzyy/centos
1
dc03的格式:
docker run -it --name dc03 --volumes-from dc01 zzyy/centos
1
操作步骤如下:
终端container dc02:
创建并启动dc02容器,并在 dataVolumeContainer2 目录中添加 dc02.txt
[root@localhost java]# docker run -it --name dc02 --volumes-from dc01 zzyy/centos
[root@7dbdb68f3e73 /]# ll
total 12
-rw-r--r--. 1 root root 12030 Oct 6 19:15 anaconda-post.log
lrwxrwxrwx. 1 root root 7 Oct 6 19:14 bin -> usr/bin
drwxr-xr-x. 2 root root 6 Nov 27 03:02 dataVolumeContainer1
drwxr-xr-x. 2 root root 22 Nov 27 03:09 dataVolumeContainer2
drwxr-xr-x. 5 root root 360 Nov 27 03:17 dev
drwxr-xr-x. 1 root root 66 Nov 27 03:17 etc
drwxr-xr-x. 2 root root 6 Apr 11 2018 home
lrwxrwxrwx. 1 root root 7 Oct 6 19:14 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Oct 6 19:14 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 Apr 11 2018 media
drwxr-xr-x. 2 root root 6 Apr 11 2018 mnt
drwxr-xr-x. 2 root root 6 Apr 11 2018 opt
dr-xr-xr-x. 270 root root 0 Nov 27 03:17 proc
dr-xr-x---. 2 root root 114 Oct 6 19:15 root
drwxr-xr-x. 10 root root 130 Oct 6 19:15 run
lrwxrwxrwx. 1 root root 8 Oct 6 19:14 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 Apr 11 2018 srv
dr-xr-xr-x. 13 root root 0 Nov 27 02:53 sys
drwxrwxrwt. 7 root root 132 Oct 6 19:15 tmp
drwxr-xr-x. 13 root root 155 Oct 6 19:14 usr
drwxr-xr-x. 18 root root 238 Oct 6 19:14 var
[root@7dbdb68f3e73 /]# cd d
dataVolumeContainer1/ dataVolumeContainer2/ dev/
[root@7dbdb68f3e73 /]# cd cd dataVolumeContainer2/
bash: cd: cd: No such file or directory
[root@7dbdb68f3e73 /]# cd dataVolumeContainer2/
[root@7dbdb68f3e73 dataVolumeContainer2]# ls
dc01.txt
[root@7dbdb68f3e73 dataVolumeContainer2]# cat dc01.txt
container dc01 add
[root@7dbdb68f3e73 dataVolumeContainer2]#
[root@7dbdb68f3e73 dataVolumeContainer2]# echo "container dc02" > dc02.txt
[root@7dbdb68f3e73 dataVolumeContainer2]# ls
dc01.txt dc02.txt
[root@7dbdb68f3e73 dataVolumeContainer2]#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
终端container dc03:
创建并启动dc03容器,并在 dataVolumeContainer2 目录中添加 dc03.txt
[root@localhost java]# docker run -it --name dc03 --volumes-from dc01 zzyy/centos
[root@4dfdba337ef2 /]# ls
anaconda-post.log bin dataVolumeContainer1 dataVolumeContainer2 dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var
[root@4dfdba337ef2 /]# ll
total 12
-rw-r--r--. 1 root root 12030 Oct 6 19:15 anaconda-post.log
lrwxrwxrwx. 1 root root 7 Oct 6 19:14 bin -> usr/bin
drwxr-xr-x. 2 root root 6 Nov 27 03:02 dataVolumeContainer1
drwxr-xr-x. 2 root root 22 Nov 27 03:09 dataVolumeContainer2
drwxr-xr-x. 5 root root 360 Nov 27 03:33 dev
drwxr-xr-x. 1 root root 66 Nov 27 03:33 etc
drwxr-xr-x. 2 root root 6 Apr 11 2018 home
lrwxrwxrwx. 1 root root 7 Oct 6 19:14 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 Oct 6 19:14 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 Apr 11 2018 media
drwxr-xr-x. 2 root root 6 Apr 11 2018 mnt
drwxr-xr-x. 2 root root 6 Apr 11 2018 opt
dr-xr-xr-x. 272 root root 0 Nov 27 03:33 proc
dr-xr-x---. 2 root root 114 Oct 6 19:15 root
drwxr-xr-x. 10 root root 130 Oct 6 19:15 run
lrwxrwxrwx. 1 root root 8 Oct 6 19:14 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 Apr 11 2018 srv
dr-xr-xr-x. 13 root root 0 Nov 27 02:53 sys
drwxrwxrwt. 7 root root 132 Oct 6 19:15 tmp
drwxr-xr-x. 13 root root 155 Oct 6 19:14 usr
drwxr-xr-x. 18 root root 238 Oct 6 19:14 var
[root@4dfdba337ef2 /]# cd dataVolumeContainer2/
[root@4dfdba337ef2 dataVolumeContainer2]# ls
dc01.txt
[root@4dfdba337ef2 dataVolumeContainer2]# ls
dc01.txt dc02.txt
[root@4dfdba337ef2 dataVolumeContainer2]# echo "container dc03 addd" > dc03.txt
[root@4dfdba337ef2 dataVolumeContainer2]# ls
dc01.txt dc02.txt dc03.txt
[root@4dfdba337ef2 dataVolumeContainer2]#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
终端host:
查看容器运行情况:
[root@localhost _data]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4dfdba337ef2 zzyy/centos "/bin/sh -c /bin/bash" 3 minutes ago Up 3 minutes dc03
7dbdb68f3e73 zzyy/centos "/bin/sh -c /bin/bash" 19 minutes ago Up 19 minutes dc02
3caa375ebfd9 zzyy/centos "/bin/sh -c /bin/bash" 34 minutes ago Up 34 minutes dc01
[root@localhost _data]#
1
2
3
4
5
6
dc01、dc02、dc03运行正常。
3、回到dc01可以看到02/03各自添加的都能共享
终端container dc01:
[root@3caa375ebfd9 dataVolumeContainer2]# ls
dc01.txt dc02.txt dc03.txt
[root@3caa375ebfd9 dataVolumeContainer2]#
1
2
3
4、删除dc01,dc02修改后,dc03可否访问
终端host:
删除dc01
[root@localhost _data]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
4dfdba337ef2 zzyy/centos "/bin/sh -c /bin/bash" 2 hours ago Up 2 hours dc03
7dbdb68f3e73 zzyy/centos "/bin/sh -c /bin/bash" 3 hours ago Up 3 hours dc02
3caa375ebfd9 zzyy/centos "/bin/sh -c /bin/bash" 3 hours ago Up 2 hours dc01
[root@localhost _data]# docker rm -f 3caa375ebfd9
3caa375ebfd9
[root@localhost _data]#
1
2
3
4
5
6
7
8
终端container dc02:
在dc02中添加新文件,并且可以看见dc01虽然被删除了,但是dc01的创建的文件还在。
[root@7dbdb68f3e73 dataVolumeContainer2]# ls
dc01.txt dc02.txt dc03.txt
[root@7dbdb68f3e73 dataVolumeContainer2]# echo "container dc02 add 22" > dc02_update.txt
[root@7dbdb68f3e73 dataVolumeContainer2]# ls
dc01.txt dc02.txt dc02_update.txt dc03.txt
[root@7dbdb68f3e73 dataVolumeContainer2]#
1
2
3
4
5
6
终端container dc03:
dc01.txt 还在,dc01.txt中的内容也能获取。
新创建的 dc02_update.txt 也在。
[root@4dfdba337ef2 dataVolumeContainer2]# ls
dc01.txt dc02.txt dc02_update.txt dc03.txt
[root@4dfdba337ef2 dataVolumeContainer2]# cat dc01.txt
container dc01 add
[root@4dfdba337ef2 dataVolumeContainer2]#
1
2
3
4
5
6
5、删除dc02后,dc03可否访问
6、新建dc04,继承dc03后,再删除dc03
结论:容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止。
---------------------
作者:xiaojin21cen
来源:CSDN
原文:https://blog.csdn.net/xiaojin21cen/article/details/84564973
Docker容器数据卷volumes-from的更多相关文章
- 『现学现忘』Docker基础 — 28、Docker容器数据卷介绍
目录 1.什么是Docker容器数据卷 2.数据卷的作用 3.数据卷的使用 1.什么是Docker容器数据卷 Docker容器数据卷,即Docker Volume(卷). 当Docker容器运行的时候 ...
- docker 12 docker容器数据卷
数据卷概念 ♣我们知道,当我们把一个运行中的容器关闭后,容器里的数据就没有了(如果你做了docker commit操作,数据会保留到新的镜像里面).所以我们就需要用容器数据卷把容器数据进行持久化储存. ...
- 5、docker容器数据卷: -v添加共享传递容器数据卷
1.是什么 1.docker理念 先来看看Docker的理念:* 将运用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的* 容器之间希望有可能共享数据 2.保 ...
- Docker 容器数据卷(Data Volume)与数据管理
卷(Volume)是容器中的一个数据挂载点,卷可以绕过联合文件系统,从而为Docker 提供持久数据,所提供的数据还可以在宿主机-容器或多个容器之间共享.通过卷,我们可以可以使修改数据直接生效,而不必 ...
- Docker容器数据卷-Volume详解
Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker中称为数据卷(Data Volume).数据卷可以用来存储Docker应用的数据,也可以用来在Docker容器间进行数据共享.数据 ...
- docker学习笔记-04:docker容器数据卷
一.容器数据卷是什么 1.为了保存docker容器运行时产生的数据,做数据的持久化,我们需要用到容器数据卷.因为如果不通过docker commit 生成新的镜像,那么当容器被删除时,数据自然就没有了 ...
- 『现学现忘』Docker基础 — 29、Docker容器数据卷的应用
目录 1.验证容器和宿主机之间数据共享 2.容器停止退出后,主机修改后数据是否同步 3.带只读权限的挂载数据卷 1.验证容器和宿主机之间数据共享 通过上面的操作,接下来我们演示一下通过数据卷的挂载,实 ...
- Docker——容器数据卷
为什么需要容器数据卷 角度:遇到问题,尝试以朴素的道理解决问题.问题复杂化,解决的方式也变得复杂 问题的提出:docker将应用和环境打包成一个镜像,但是对于容器内的数据,如果不进行外部的保存,那么当 ...
- Docker | 容器数据卷详解
什么是容器数据卷 从docker的理念说起,docker将应用和环境打包成一个镜像,运行镜像(生成容器)就可以访问服务了. 如果数据都存在容器中,那么删除容器,数据就会丢失!需求:数据可以持久化 My ...
- docker基础---数据卷volumes
1.数据卷 数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性: 数据卷可以在容器之间共享和重用 对数据卷的修改会立马生效 对数据卷的更新,不会影响镜像 卷会一直存在 ...
随机推荐
- TensorFlow学习笔记1-入门
TensorFlow学习笔记1-入门 作者: YunYuan *** 写在前面 本笔记是我学习TensorFlow官方文档中文版的读书笔记,由于尚未搭建好Github的个人博客的评论功能,故尚不方便与 ...
- httpclient模拟服务器请求
// 创建默认的httpClient实例. CloseableHttpClient httpclient = HttpClients.createDefault(); // 创建httppost Ht ...
- centos7系统乱码问题解决
操作步骤: 查看当前系统的默认语言 echo $LANG 查看系统支持的语言库 locale 如果没有要设置的语言需要安装一下 yum groupinstall chinese-support -y ...
- 耗时近一个月,终于录完了VUE.JS2.0前端视频教程!
这次课录制的比较辛苦,圣诞节时原本已经快录制完成了,偶然的一次,播放了一下,感觉不满意,好几篇推倒重来,所以今天才结束. vue.js2.0是Vue.JS的最新版本,视频教程还不多,如果你看到了,学到 ...
- 【洛谷p2089】 烤鸡
烤鸡[题目链接] 感觉我超废 关于算法:有很多很多算法吧,但自我感觉最重要的是递归的算法: SOLUTION: 首先忍不住要吐槽这个神仙数据: 嗯???定睛一看,它这数据范围莫不是白瞎了,因为每种配料 ...
- <转载>面试官: 讲讲MySql表设计需要注意什么?
作者:孤独烟 出处: http://rjzheng.cnblogs.com/ 综述 近期由于复习了一下MySQL的内容看到一篇比较好的文章,转载分享一下.大家看完,其实能避开很多坑.而且很多问题,都是 ...
- GnuTLS 3.3.3 remote memory corruption(CVE-2014-3466)
Buffer overflow in the read_server_hello function in lib/gnutls_handshake.c in GnuTLS before 3.1.25, ...
- vector中数据释放崩溃问题
struct LINE { char securityID[32]; /*!< 证券代码 */ int64_t dateTime; /*!< 日期时间(日期变化)YYYYMMDDhhmms ...
- 屏蔽命令任何输出的:>/dev/null 2>&1
- vue,一路走来(9)--聊天窗口
闲暇时间,介绍一下我做一个聊天窗口的心得.如图: 首先要考虑的是得判断出是自己的信息还是对方发来的信息,给出如图的布局,切换不同的类. <li class="clearfix" ...