0
点赞
收藏
分享

微信扫一扫

docker(6)数据卷容器

王传学 2022-01-27 阅读 115

如下图所示:该图中c3就是数据卷容器
在这里插入图片描述

配置数据卷容器

1 启动数据卷容器c3

1.创建启动c3数据卷容器,使用-v参数设置数据卷

docker run -it --name=c3 -v /volume centos:7 /bin/bash

centos:7

如果在/volume左边不去设置目录的话,docker会自动分配一个目录

#删除5中创建的容器
[root@localhost ~]# docker rm c1 c2
c1
c2
[root@localhost ~]# docker ps -a
CONTAINER ID        IMAGE                                                    COMMAND             CREATED             STATUS                      PORTS               NAMES
[root@localhost ~]# docker run -it --name=c3 -v /volume --privileged=true centos
[root@7048bbaeb3b5 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  volume
[root@7048bbaeb3b5 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  volume
[root@7048bbaeb3b5 /]# cd volume/
[root@7048bbaeb3b5 volume]# touch a.txt
[root@7048bbaeb3b5 volume]# ls
a.txt
[root@7048bbaeb3b5 volume]# 

查看在/volume左边没有设置目录时,docker自动分配一个目录位置,其中的Source后面的就是分配的文件目录

[root@localhost data]# docker inspect c3
[
    {
        。。。
        "Mounts": [
            {
                "Type": "volume",
                "Name": "560f3cc339081441d036312d6ed78d4649e1d754c16e2878ca3c2fbe7d096859",
                "Source": "/var/lib/docker/volumes/560f3cc339081441d036312d6ed78d4649e1d754c16e2878ca3c2fbe7d096859/_data",
                "Destination": "/volume",
                "Driver": "local",
                "Mode": "",
                "RW": true,
                "Propagation": ""
            }
        ],
        。。。。
]
[root@localhost data]# 

2 创建启动c1 c2容器

2.创建启动c1 c2容器,使用–volumes-from参数设置数据卷

docker run -it --name=c1 --volumes-from c3 centos:7 /bin/bash
docker run -it --name=c2 --volumes-from c3 centos:7 /bin/bash

下面的还是一个加上–privileged=true ,方便对容器里面进行操作(我是因为忘记了,不过效果没有问题,我也就不改了)

控制台1执行


[root@localhost data]# docker run -it --name=c1 --volumes-from c3 centos
[root@41b97000dde8 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  volume
[root@41b97000dde8 /]# cd volume/
[root@41b97000dde8 volume]# ls
a.txt
[root@41b97000dde8 volume]# 

控制台2执行

[root@localhost ~]# docker run -it --name=c2 --volumes-from c3 centos
[root@1f3e008ee9a3 /]# ls
bin  dev  etc  home  lib  lib64  lost+found  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var  volume
[root@1f3e008ee9a3 /]# cd volume/
[root@1f3e008ee9a3 volume]# ls
a.txt
[root@1f3e008ee9a3 volume]# 

现在查看容器的元数据,可以发现挂载是成功了的:

[root@localhost data]# docker inspect c3
....
[root@localhost data]# 

数据卷总结

数据卷就是宿主机中的一个目录或文件,只是对这些与容器进行了挂载

数据卷作用

  1. 容器数据持久化
  2. 客户端和容器数据交换。
  3. 容器间数据交换

数据卷容器

  1. 创建一个容器,挂载一个目录,让其他容器继承自该容器(–volume-from )。通

  2. 过简单方式实现数据卷配置

举报

相关推荐

0 条评论