定义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的更多相关文章

  1. 『现学现忘』Docker基础 — 28、Docker容器数据卷介绍

    目录 1.什么是Docker容器数据卷 2.数据卷的作用 3.数据卷的使用 1.什么是Docker容器数据卷 Docker容器数据卷,即Docker Volume(卷). 当Docker容器运行的时候 ...

  2. docker 12 docker容器数据卷

    数据卷概念 ♣我们知道,当我们把一个运行中的容器关闭后,容器里的数据就没有了(如果你做了docker commit操作,数据会保留到新的镜像里面).所以我们就需要用容器数据卷把容器数据进行持久化储存. ...

  3. 5、docker容器数据卷: -v添加共享传递容器数据卷

    1.是什么 1.docker理念 先来看看Docker的理念:*  将运用与运行的环境打包形成容器运行 ,运行可以伴随着容器,但是我们对数据的要求希望是持久化的*  容器之间希望有可能共享数据 2.保 ...

  4. Docker 容器数据卷(Data Volume)与数据管理

    卷(Volume)是容器中的一个数据挂载点,卷可以绕过联合文件系统,从而为Docker 提供持久数据,所提供的数据还可以在宿主机-容器或多个容器之间共享.通过卷,我们可以可以使修改数据直接生效,而不必 ...

  5. Docker容器数据卷-Volume详解

    Docker中的数据可以存储在类似于虚拟机磁盘的介质中,在Docker中称为数据卷(Data Volume).数据卷可以用来存储Docker应用的数据,也可以用来在Docker容器间进行数据共享.数据 ...

  6. docker学习笔记-04:docker容器数据卷

    一.容器数据卷是什么 1.为了保存docker容器运行时产生的数据,做数据的持久化,我们需要用到容器数据卷.因为如果不通过docker commit 生成新的镜像,那么当容器被删除时,数据自然就没有了 ...

  7. 『现学现忘』Docker基础 — 29、Docker容器数据卷的应用

    目录 1.验证容器和宿主机之间数据共享 2.容器停止退出后,主机修改后数据是否同步 3.带只读权限的挂载数据卷 1.验证容器和宿主机之间数据共享 通过上面的操作,接下来我们演示一下通过数据卷的挂载,实 ...

  8. Docker——容器数据卷

    为什么需要容器数据卷 角度:遇到问题,尝试以朴素的道理解决问题.问题复杂化,解决的方式也变得复杂 问题的提出:docker将应用和环境打包成一个镜像,但是对于容器内的数据,如果不进行外部的保存,那么当 ...

  9. Docker | 容器数据卷详解

    什么是容器数据卷 从docker的理念说起,docker将应用和环境打包成一个镜像,运行镜像(生成容器)就可以访问服务了. 如果数据都存在容器中,那么删除容器,数据就会丢失!需求:数据可以持久化 My ...

  10. docker基础---数据卷volumes

    1.数据卷 数据卷是一个可供一个或多个容器使用的特殊目录,它绕过 UFS,可以提供很多有用的特性: 数据卷可以在容器之间共享和重用 对数据卷的修改会立马生效 对数据卷的更新,不会影响镜像 卷会一直存在 ...

随机推荐

  1. Using Tensorflow SavedModel Format to Save and Do Predictions

    We are now trying to deploy our Deep Learning model onto Google Cloud. It is required to use Google ...

  2. unittest单元测试(简单算法题)

    创建测试用例case.py文件 #创建类 class test (): def __init__(self,a,c): self.a =int(a) self.c =int (c) #加 def ad ...

  3. lLinux 下 Stress 压力测试工具

    作者信息 邮箱:sijiayong000@163.com Q Q:601566386 Stress是什么 stress是一个linux下的压力测试工具,专门为那些想要测试自己的系统,完全高负荷和监督这 ...

  4. 厉害了,Google大神每天写多少行代码?

    文章转自开源中国社区,编译自:Quora Quora上有个有趣的问题:Google工程师们每天写多少行代码? Google 的 AdMob 全栈工程师 Raymond Farias 在 Quora 发 ...

  5. Codeforces 1105C (DP)

    题面 传送门 分析 这种计数问题,要不是纯数学推公式,要不就是dp 先处理出[l,r]中除3余0,1,2的数的个数,记为cnt0,cnt1,cnt2 设\(dp[i][j]\)表示前i个数的和除3余j ...

  6. 1.openshift搭建

    第1章 主机规划和所需文件 1.1 主机规划 IP地址 域名 用途 11.11.233.125 master01.song.test.cnpc 容器编排.etcd 11.11.233.126 mast ...

  7. python开发之路-day02

    一.数据类型 1 什么是数据? name='sunkedong'#字符串类型 age=24 #整型 date=2017.9#浮点型 dic={'name':'sunkedong','age':16}# ...

  8. Day5---Python的random库

    random库 1.random库是随机数的Python标准库   2.原理 : random生成的伪随机数,而采用梅森旋转算法生成的(伪)随机序列中的元素叫做伪随机数 https://liam.pa ...

  9. 6个常用Java 源代码 保护工具(混淆、加密、底层)

    6个常用Java 源代码 保护工具(混淆.加密.底层) ProGuard Java源代码保护工具ProGuard的3.6与4.1版  下载地址:http://download.csdn.net/sou ...

  10. 前端 ----- 初探ES6 Promise

    前段时间做项目,在调用接口的时候,遇到了异步问题.开始是使用定时器,发现效果并不理想,于是又用了回调,效果还好但是,很明显的影响了代码的整洁性. 于是我想起了在面试的那段时间,背过的面试题里,出现过一 ...