七、容器数据卷

7.1 容器数据卷是什么

先来看看Docker的理念:

将运用与运行的环境打包形成容器运行,运行可以伴随着容器,但是我们对数据的要求希望是持久化的,容器之间希望有可能共享数据。Docker容器产生的数据,如果不通过docker commit生成新的镜像,使得数据做为镜像的一部分保存下来,那么当容器删除后,数据自然也就没有了。为了能保存数据在docker中我们使用卷卷就是目录或文件,存在于一个或多个容器中,由docker挂载到容器, 但不属于联合文件系统,因此能够绕过Union File System提供一些用于持续存储或共享数据的特性

卷的设计目的就是数据的持久化,完全独立于容器的生存周期,因此Docker不会在容器删除时删除其挂载的数据卷。

特点:

数据卷可在容器之间共享或重用数据

卷中的更改可以直接生效

数据卷中的更改不会包含在镜像的更新中

数据卷的生命周期一直持续到没有容器使用它为止

7.2 能做什么

容器的持久化

容器间继承+共享数据

6.3 数据卷(用命令增加)

主要命令:

docker run -it -v /宿主机目录:/容器目录 容器id/容器名称 (不带权限,可读可写 v:Volume 卷)
docker run -it -v /宿主机目录:/容器目录:ro 容器id/容器名称 (带权限,可读不可写 ro:read only)

1、打开多个终端:container终端、宿主机终端1、宿主机终端2

生成数据卷之前,先分别查看宿主机和容器根目录下的文件

容器终端

[root@boxiaoyuan ~]# docker run -it centos /bin/bash
[root@57a42e3ea3c6 /]# ls
anaconda-post.log  dev  home  lib64  mnt  proc  run   srv  tmp  var bin etc  lib   media  opt  root  sbin  sys  usr
[root@57a42e3ea3c6 /]# exit
exit

宿主机终端1

[root@boxiaoyuan ~]# cd ../
[root@boxiaoyuan /]# ls
bin   cgroup  etc   lib    lost+found  misc  net  proc  sbin     srv  tmp  var boot  dev  home  lib64  media  mnt   opt  root  selinux  sys  usr

容器终端

执行命令docker run -it -v /宿主机目录:/容器目录 容器id/容器名称:

[root@boxiaoyuan ~]# docker run -it -v /myDataVolume:/dataVolumeContainer centos
[root@d9d0af0a6d1a /]# ls
anaconda-post.log  dataVolumeContainer  etc   lib    media  opt   root  sbin  sys  usr bin dev home  lib64  mnt    proc  run   srv  

宿主机终端1

[root@boxiaoyuan /]# ls
bin   cgroup  etc   lib    lost+found  misc  myDataVolume  opt   root  selinux  sys  usr boot  dev     home  lib64  media mnt   net proc  sbin  srv      tmp  var

可以发现宿主机和容器内都增加了一个文件夹

宿主机终端2

[root@boxiaoyuan ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED              STATUS              PORTS               NAMES
d9d0af0a6d1a        centos              "/bin/bash"         About a minute ago   Up About a minute                       reverent_hopper     
[root@boxiaoyuan ~]# docker inspect d9d0af0a6d1a
[
{
    "Id": "d9d0af0a6d1aa803211e553290dd7ca06628d692a3a26bc9f1e90a47bd5a8f68",
    "Created": "2019-07-06T12:19:15.584574153Z",
    "Path": "/bin/bash",
    "Args": [],"Volumes": {
        "/dataVolumeContainer": "/myDataVolume"
    },
    "VolumesRW": {
        "/dataVolumeContainer": true   ## 可以进行读写操作
    },"HostConfig": {
        "Binds": [
            "/myDataVolume:/dataVolumeContainer"   ## 表示容器内部已和宿主机对应的文件夹绑定
        ],
       
}
]

2、实现继承+共享数据

宿主机终端1

[root@boxiaoyuan /]# cd myDataVolume/
[root@boxiaoyuan myDataVolume]# ls
[root@boxiaoyuan myDataVolume]# touch host.txt
[root@boxiaoyuan myDataVolume]# ls -al
总用量 8
drwxr-xr-x.  2 root root 4096 7月   6 20:31 .
dr-xr-xr-x. 27 root root 4096 7月   6 20:19 ..
-rw-r--r--.  1 root root    0 7月   6 20:31 host.txt

容器终端

[root@d9d0af0a6d1a /]# cd dataVolumeContainer/
[root@d9d0af0a6d1a dataVolumeContainer]# ls -al
total 8
drwxr-xr-x.  2 root root 4096 Jul  6 12:31 .
drwxr-xr-x. 17 root root 4096 Jul  6 12:19 ..
-rw-r--r--.  1 root root    0 Jul  6 12:31 host.txt

可以看到宿主机在绑定的文件夹里创建文件的同时,容器内部对应的文件夹里也同时创建了文件。

容器终端

[root@d9d0af0a6d1a dataVolumeContainer]# vi host.txt 

## 写入container update 666 并保存退出

[root@d9d0af0a6d1a dataVolumeContainer]# touch container.txt
[root@d9d0af0a6d1a dataVolumeContainer]# ls -al
total 12
drwxr-xr-x.  2 root root 4096 Jul  6 12:32 .
drwxr-xr-x. 17 root root 4096 Jul  6 12:19 ..
-rw-r--r--.  1 root root    0 Jul  6 12:32 container.txt
-rw-r--r--.  1 root root   21 Jul  6 12:32 host.txt

宿主机终端1

[root@boxiaoyuan myDataVolume]# ls -al
总用量 12
drwxr-xr-x.  2 root root 4096 7月   6 20:32 .
dr-xr-xr-x. 27 root root 4096 7月   6 20:19 ..
-rw-r--r--.  1 root root    0 7月   6 20:32 container.txt
-rw-r--r--.  1 root root   21 7月   6 20:32 host.txt
[root@boxiaoyuan myDataVolume]# cat host.txt 
container uodate 666

可以发现无论是哪个端进行增删改文件及内容,均能相互共享。

3、容器停止后,宿主机修改后能否同步数据

容器终端

[root@d9d0af0a6d1a dataVolumeContainer]# exit
exit

宿主机终端2

[root@boxiaoyuan ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

宿主机终端1

[root@boxiaoyuan myDataVolume]# touch host01.txt
[root@boxiaoyuan myDataVolume]# vim host.txt

## 写入container update 666 并保存退出

[root@boxiaoyuan myDataVolume]# ls -al
总用量 16
drwxr-xr-x.  2 root root 4096 7月   6 20:37 .
dr-xr-xr-x. 27 root root 4096 7月   6 20:19 ..
-rw-r--r--.  1 root root    0 7月   6 20:32 container.txt
-rw-r--r--.  1 root root   16 7月   6 20:37 host01.txt
-rw-r--r--.  1 root root   21 7月   6 20:32 host.txt

容器终端

重启上次的容器id

[root@boxiaoyuan ~]# docker start d9d0af0a6d1a
d9d0af0a6d1a

宿主机终端2

[root@boxiaoyuan ~]# docker ps
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES
d9d0af0a6d1a        centos              "/bin/bash"         18 minutes ago      Up 9 seconds                            reverent_hopper 

容器终端

[root@boxiaoyuan ~]# docker attach d9d0af0a6d1a
[root@d9d0af0a6d1a /]# cd dataVolumeContainer/
[root@d9d0af0a6d1a dataVolumeContainer]# ls -al
total 16
drwxr-xr-x.  2 root root 4096 Jul  6 12:37 .
drwxr-xr-x. 17 root root 4096 Jul  6 12:37 ..
-rw-r--r--.  1 root root    0 Jul  6 12:32 container.txt
-rw-r--r--.  1 root root   21 Jul  6 12:32 host.txt
-rw-r--r--.  1 root root   16 Jul  6 12:37 host01.txt
[root@d9d0af0a6d1a dataVolumeContainer]# cat host.txt 
host update 666
container update 666

没问题,可以同步

4、命令带权限

宿主机终端1

[root@boxiaoyuan myDataVolume]# cd ../
[root@boxiaoyuan /]# rm -rf myDataVolume/
[root@boxiaoyuan /]# ls
bin   cgroup  etc   lib    lost+found  misc  net  proc  sbin     srv  tmp  var boot  dev     home  lib64  media       mnt   opt  root  selinux  sys  usr

容器终端

[root@d9d0af0a6d1a dataVolumeContainer]# ls
[root@d9d0af0a6d1a dataVolumeContainer]# cd ..
[root@d9d0af0a6d1a /]# ls
anaconda-post.log  dataVolumeContainer  etc   lib    media  opt   root  sbin  sys  usr
bin                dev                  home  lib64  mnt    proc  run   srv   tmp  var
[root@d9d0af0a6d1a /]# exit
exit
[root@boxiaoyuan ~]# docker run -it -v /myDataVolume:/dataVolumeContainer:ro centos
[root@a1b5204dedfa /]# ls
anaconda-post.log  dataVolumeContainer  etc   lib    media  opt   root  sbin  sys  usr
bin                dev                  home  lib64  mnt    proc  run   srv   tmp  var
[root@a1b5204dedfa /]# cd dataVolumeContainer/
[root@a1b5204dedfa dataVolumeContainer]# ls -al
total 8
drwxr-xr-x.  2 root root 4096 Jul  6 12:43 .
drwxr-xr-x. 17 root root 4096 Jul  6 12:43 ..

宿主机终端1

[root@boxiaoyuan /]# ls
bin   cgroup  etc   lib    lost+found  misc  myDataVolume  opt   root  selinux  sys  usr
boot  dev     home  lib64  media       mnt   net           proc  sbin  srv  
[root@boxiaoyuan /]# cd myDataVolume/
[root@boxiaoyuan myDataVolume]# ls -al
总用量 8
drwxr-xr-x.  2 root root 4096 7月   6 20:43 .
dr-xr-xr-x. 27 root root 4096 7月   6 20:43 ..
[root@boxiaoyuan myDataVolume]# touch  host.txt
[root@boxiaoyuan myDataVolume]# vim host.txt 
[root@boxiaoyuan myDataVolume]# cat host.txt 
host update

容器终端

[root@a1b5204dedfa dataVolumeContainer]# ls -al
total 12
drwxr-xr-x. 2 root root 4096 Jul 6 12:44 .
drwxr-xr-x. 17 root root 4096 Jul 6 12:43 ..
-rw-r--r--. 1 root root 12 Jul 6 12:44 host.txt
[root@a1b5204dedfa dataVolumeContainer]# cat host.txt
host update

重点来了

容器终端

[root@a1b5204dedfa dataVolumeContainer]# touch  container.txt
touch: cannot touch 'container.txt': Read-only file system
[root@a1b5204dedfadataVolumeContainer]# vi host.txt
"host.txt"
"host.txt" E212: Can't open file for writing ## vi 操作则会提示

说明权限命令没问题,只允许宿主机单向传给容器,容器不能反向传给宿主机。

宿主机终端2

[root@boxiaoyuan ~]# docker inspect a1b5204dedfa
[
{
    "Volumes": {
        "/dataVolumeContainer": "/myDataVolume"
    },
    "VolumesRW": {
        "/dataVolumeContainer": false  ## 此时RW为false
    },
    "HostConfig": {
        "Binds": [
            "/myDataVolume:/dataVolumeContainer:ro" ## 加上了:ro
        ]
        
    }
}
]

7.4 数据卷(DockerFile添加)

DockerFile:对镜像的一种源码级的描述文件。

1、 根目录下新建mydocker文件夹并进入

[root@boxiaoyuan /]# mkdir mydocker 
[root@boxiaoyuan /]# cd mydocker/

2、可在DockerFile中使用VOLUME指令来给镜像添加一个或多个数据卷

VOLUME["/dataVolumeContainer","/dataVolumeContainer2","/dataVolumeContainer3"]

说明:

出于可移植和分享的考虑,用-v主机目录:容器目录这种方法不能够直接在Dockerfile中实现。

由于宿主机目录是依赖于特定宿主机的,并不能够保证在所有的宿主机上都存在这样的特定目录。

3、File构建

[root@boxiaoyuan mydocker]# vim Dockerfile
[root@boxiaoyuan mydocker]# cat Dockerfile
# volume test
FROM centos
VOLUME ["/dataVolumeContainer1" ,"/dataVolumeContainer2"]
CMD echo "finished,==================success1"
CMD /bin/bash

4、build后生成镜像

最后有个 . 不要忘记了

[root@boxiaoyuan mydocker]# docker build -f /mydocker/Dockerfile -t boxiaoyuan/centos .
Sending build context to Docker daemon 2.048 kB
Sending build context to Docker daemon 
Step 0 : FROM centos
 ---> ee2526f4865b
Step 1 : VOLUME /dataVolumeContainer1 /dataVolumeContainer2
 ---> Running in 6452bd865111
 ---> 520480f4a267
Removing intermediate container 6452bd865111
Step 2 : CMD echo "finished,=============success1"
 ---> Running in c804b814aa80
 ---> e235e19c4d97
Removing intermediate container c804b814aa80
Step 3 : CMD /bin/bash
 ---> Running in 4094f63d20ea
 ---> 9f3d5ff4c0b1
Removing intermediate container 4094f63d20ea
Successfully built 9f3d5ff4c0b1

成功生成镜像

[root@boxiaoyuan mydocker]# docker images
REPOSITORY                TAG                 IMAGE ID            CREATED              VIRTUAL SIZE
boxiaoyuan/centos         latest              9f3d5ff4c0b1        About a minute ago   201.8 MB
boxiaoyuan/nodocstomcat   1.0                 002a5c87a638        About an hour ago    510.4 MB
tomcat                    latest              d06128b13608        2 days ago           510.3 MB
ubuntu                    latest              d351d647d655        2 weeks ago          64.18 MB
ubuntu                    14.04               fe62d34455b7        7 weeks ago          188.2 MB
centos                    6                   4f2ed42dccff        3 months ago         193.9 MB
centos                    latest              ee2526f4865b        3 months ago         201.8 MB
hello-world               latest              9f5834b25059        6 months ago         1.84 kB

5、run容器

容器终端

[root@boxiaoyuan ~]# docker run -it boxiaoyuan/centos
[root@aaeafaa6e70c /]# ls -al
total 72
drwxr-xr-x.  18 root root  4096 Jul  6 13:10 .
drwxr-xr-x.  18 root root  4096 Jul  6 13:10 ..
-rwxr-xr-x.   1 root root     0 Jul  6 13:10 .dockerenv
-rwxr-xr-x.   1 root root     0 Jul  6 13:10 .dockerinit
-rw-r--r--.   1 root root 12082 Mar  5 17:36 anaconda-post.log
lrwxrwxrwx.   1 root root     7 Mar  5 17:34 bin -> usr/bin
drwxr-xr-x.   2 root root  4096 Jul  6 13:10 dataVolumeContainer1
drwxr-xr-x.   2 root root  4096 Jul  6 13:10 dataVolumeContainer2
drwxr-xr-x.   5 root root   380 Jul  6 13:10 dev
drwxr-xr-x.  47 root root  4096 Jul  6 13:10 etc
drwxr-xr-x.   2 root root  4096 Apr 11  2018 home
lrwxrwxrwx.   1 root root     7 Mar  5 17:34 lib -> usr/lib
lrwxrwxrwx.   1 root root     9 Mar  5 17:34 lib64 -> usr/lib64
drwxr-xr-x.   2 root root  4096 Apr 11  2018 media
drwxr-xr-x.   2 root root  4096 Apr 11  2018 mnt
drwxr-xr-x.   2 root root  4096 Apr 11  2018 opt
dr-xr-xr-x. 181 root root     0 Jul  6 13:10 proc
dr-xr-x---.   2 root root  4096 Mar  5 17:36 root
drwxr-xr-x.  11 root root  4096 Mar  5 17:36 run
lrwxrwxrwx.   1 root root     8 Mar  5 17:34 sbin -> usr/sbin
drwxr-xr-x.   2 root root  4096 Apr 11  2018 srv
drwxr-xr-x   13 root root     0 Oct 23  2018 sys
drwxrwxrwt.   7 root root  4096 Mar  5 17:36 tmp
drwxr-xr-x.  13 root root  4096 Mar  5 17:34 usr
drwxr-xr-x.  18 root root  4096 Mar  5 17:34 var
[root@aaeafaa6e70c /]# cd dataVolumeContainer1/
[root@aaeafaa6e70c dataVolumeContainer1]# touch container01.txt
[root@aaeafaa6e70c dataVolumeContainer1]# ls
container01.txt
[root@aaeafaa6e70c dataVolumeContainer1]# ls -al
total 8
drwxr-xr-x.  2 root root 4096 Jul  6 13:10 .
drwxr-xr-x. 18 root root 4096 Jul  6 13:10 ..
-rw-r--r--.  1 root root    0 Jul  6 13:10 container01.txt

宿主机终端

可以看到容器内绑定的宿主机对应的文件夹,也就是可以进行相应的数据共享了。

[root@boxiaoyuan mydocker]# docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED              STATUS              PORTS               NAMES
aaeafaa6e70c        boxiaoyuan/centos   "/bin/sh -c /bin/bas   About a minute ago   Up About a minute                       jovial_galileo      
[root@boxiaoyuan mydocker]# docker inspect aaeafaa6e70c
[
{"Volumes": {
        "/dataVolumeContainer1": "/var/lib/docker/volumes/2327db8a4ff7da67d3397699f3b0ae7dd40400be7d64dceaabeadfb4994fc8e8/_data",
        "/dataVolumeContainer2": "/var/lib/docker/volumes/2d551ea2db84b65da55ba1523c81e24bbefafc379857c9c80defee8eb66ae03e/_data"
    },
    "VolumesRW": {
        "/dataVolumeContainer1": true,
        "/dataVolumeContainer2": true
    }
}
]

宿主机终端

[root@boxiaoyuan mydocker]# cd /var/lib/docker/volumes/2327db8a4ff7da67d3397699f3b0ae7dd40400be7d64dceaabeadfb4994fc8e8/_data
[root@boxiaoyuan _data]# ls -al
总用量 8
drwxr-xr-x. 2 root root 4096 7月   6 21:10 .
drwxr-xr-x. 3 root root 4096 7月   6 21:10 ..
-rw-r--r--. 1 root root    0 7月   6 21:10 container01.txt

宿主机终端

新建文件host.txt

[root@boxiaoyuan _data]# touch host.txt
[root@boxiaoyuan _data]# ls -al
总用量 8
drwxr-xr-x. 2 root root 4096 7月   6 21:16 .
drwxr-xr-x. 3 root root 4096 7月   6 21:10 ..
-rw-r--r--. 1 root root    0 7月   6 21:10 container01.txt
-rw-r--r--. 1 root root    0 7月   6 21:16 host.txt

容器终端

[root@aaeafaa6e70c dataVolumeContainer1]# ls -al
total 8
drwxr-xr-x.  2 root root 4096 Jul  6 13:16 .
drwxr-xr-x. 18 root root 4096 Jul  6 13:10 ..
-rw-r--r--.  1 root root    0 Jul  6 13:10 container01.txt
-rw-r--r--.  1 root root    0 Jul  6 13:16 host.txt

如果出现以下错误

Docker挂载主机目录Docker访问出现cannot open directory .: Permission denied

解决办法:在挂载目录后多加一个--privileged=true参数即可

如原来的命令:
[root@localhost ~]# docker run -it -v /myDataVolume:/dataVolumeContainer centos
修改为:
[root@localhost ~]# docker run -it -v /myDataVolume:/dataVolumeContainer --privileged=true centos

7.5 数据卷容器

7.5.1 是什么

命名的容器挂载数据卷,其他容器通过挂载这个(父容器)实现数据共享,挂载数据卷的容器,称之为数据卷容器。

7.5.2 容器间传递共享(–volumes - from)

docker run -it --name 子容器别名 --volumes-from 父容器别名 需运行的容器id/容器名称

创建父容器

[root@boxiaoyuan ~]# docker run -it --name boxiaoyuan boxiaoyuan/centos
[root@d1ab983e15fc /]# ls
anaconda-post.log  dataVolumeContainer1  dev  home  lib64  mnt  proc  run   srv  tmp  var
bin                dataVolumeContainer2  etc  lib   media  opt  root  sbin  sys  usr
[root@d1ab983e15fc /]# cd dataVolumeContainer2/
[root@d1ab983e15fc dataVolumeContainer2]# ls -al
total 8
drwxr-xr-x.  2 root root 4096 Jul  6 13:21 .
drwxr-xr-x. 18 root root 4096 Jul  6 13:21 ..
[root@d1ab983e15fc dataVolumeContainer2]# touch boxiaoyuan_add.txt
## ctrl+P ctrl+Q 退出容器 [root@d1ab983e15fc dataVolumeContainer2]# [root@boxiaoyuan ~]# [root@boxiaoyuan ~]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES d1ab983e15fc boxiaoyuan/centos "/bin/sh -c /bin/bas 45 seconds ago Up 44 seconds boxiaoyuan

创建子容器1,并继承父容器

[root@boxiaoyuan ~]# docker run -it --name boxiaoyuan_sub --volumes-from boxiaoyuan boxiaoyuan/centos
[root@25501c70bdf8 /]# ls
anaconda-post.log  dataVolumeContainer1  dev  home  lib64  mnt  proc  run   srv  tmp  var
bin                dataVolumeContainer2  etc  lib   media  opt  root  sbin  sys  usr
[root@25501c70bdf8 /]# cd dataVolumeContainer2/
[root@25501c70bdf8 dataVolumeContainer2]# ls
boxiaoyuan_add.txt
## ctrl+P ctrl+Q 退出容器 [root@25501c70bdf8 dataVolumeContainer2]# touch boxiaoyuan02_add.txt [root@25501c70bdf8 dataVolumeContainer2]# [root@boxiaoyuan ~]#

创建子容器2,并继承父容器

[root@boxiaoyuan ~]# docker run -it --name boxiaoyuan_sub_sub --volumes-from boxiaoyuan boxiaoyuan/centos
[root@6f4966308ba0 /]# cd dataVolumeContainer2/
[root@6f4966308ba0 dataVolumeContainer2]# ls
boxiaoyuan02_add.txt  boxiaoyuan_add.txt
[root@6f4966308ba0 dataVolumeContainer2]# touch boxiaoyuan03_add.txt
## ctrl+P ctrl+Q 退出容器
[root@6f4966308ba0 dataVolumeContainer2]#[root@boxiaoyuan ~]#

查看当前运行的容器

[root@boxiaoyuan ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS               NAMES
6f4966308ba0        boxiaoyuan/centos   "/bin/sh -c /bin/bas   22 seconds ago      Up 21 seconds                           boxiaoyuan_sub_sub   
25501c70bdf8        boxiaoyuan/centos   "/bin/sh -c /bin/bas   4 minutes ago       Up 4 minutes                            boxiaoyuan_sub       
d1ab983e15fc        boxiaoyuan/centos   "/bin/sh -c /bin/bas   6 minutes ago       Up 6 minutes                            boxiaoyuan      

删除boxiaoyuan,bixaoyuan_sub修改后boxiaoyuan_sub_sub能否访问

1、删除boxiaoyuan

[root@boxiaoyuan ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS               NAMES
6f4966308ba0        boxiaoyuan/centos   "/bin/sh -c /bin/bas   22 seconds ago      Up 21 seconds                           boxiaoyuan_sub_sub   
25501c70bdf8        boxiaoyuan/centos   "/bin/sh -c /bin/bas   4 minutes ago       Up 4 minutes                            boxiaoyuan_sub       
d1ab983e15fc        boxiaoyuan/centos   "/bin/sh -c /bin/bas   6 minutes ago       Up 6 minutes                            boxiaoyuan     
[root@boxiaoyuan ~]# docker rm -f boxiaoyuan 
boxiaoyuan

2、修改boxiaoyuan_sub

[root@boxiaoyuan ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED              STATUS              PORTS               NAMES
6f4966308ba0        boxiaoyuan/centos   "/bin/sh -c /bin/bas   About a minute ago   Up About a minute                       boxiaoyuan_sub_sub   
25501c70bdf8        boxiaoyuan/centos   "/bin/sh -c /bin/bas   4 minutes ago        Up 4 minutes                            boxiaoyuan_sub   
[root@boxiaoyuan ~]# docker attach boxiaoyuan_sub
[root@25501c70bdf8 dataVolumeContainer2]# ls
boxiaoyuan02_add.txt  boxiaoyuan03_add.txt  boxiaoyuan_add.txt
[root@25501c70bdf8 dataVolumeContainer2]# touch boxiaoyuan02_update.txt
[root@25501c70bdf8 dataVolumeContainer2]# ls
boxiaoyuan02_add.txt  boxiaoyuan02_update.txt  boxiaoyuan03_add.txt  boxiaoyuan_add.txt
[root@25501c70bdf8 dataVolumeContainer2]# [root@boxiaoyuan ~]# 

3、访问boxiaoyuan_sub_sub

[root@boxiaoyuan ~]# docker attach boxiaoyuan_sub_sub
[root@6f4966308ba0 dataVolumeContainer2]# ls
boxiaoyuan02_add.txt  boxiaoyuan02_update.txt  boxiaoyuan03_add.txt  boxiaoyuan_add.txt

答案是可以

结论:容器之间配置信息的传递,数据卷的生命周期一直持续到没有容器使用它为止。

上一篇:计算机系统与云计算1


下一篇:【洛谷5437】【XR-2】约定(拉格朗日插值)