Docker创建和挂载一个数据卷容器共享给其他容器


本文章为本站原创文章,转载请注明出处!


首先创建一个数据卷容器并使用--name参数命名这个容器为data, 使用-v参数分别在容器内的/var目录下创建一个volume1和/tmp/目录下创建一个volume2的数据卷,当然其他目录下创建也是可以的 (提示:凡是自定义命名的,可以根据你的需求自己定义名字)
[root@localhost ~]# docker run --name=data -v /var/volume1 -v/tmp/volume2 -it docker.io/centos:latst true
[root@localhost ~]# docker ps -a
CONTAINER ID    IMAGE                   COMMAND    CREATED        STATUS                         
5f7fa6c5f5cc    docker.io/centos:latest  "true"   10 seconds ago  Exited (0) 9 seconds ago   
PORTS               NAMES
                    data
[root@localhost ~]#
解释:
    现在创建好了一个容器名字为data,里面有两个卷/var/volume1 /tmp/volume2
    当然这个data容器创建好以后就自动退出了 只用作数据卷容器 启不启动我们都可以通过其他容器来存储数据到data容器的/var/volume1 /tmp/volume2两个卷里面。

接下来我们新创建一个容器挂载上面data容器里面的两个卷/var/volume1 /tmp/volume2到我们的新容器 这里举例centos-data1容器里面:
[root@localhost ~]# docker run --name=centos-data1 --volumes-from=data -it docker.io/centos:latest /bin/bash
[root@56e31aedbd84 /]# ls /var /tmp
/tmp:
ks-script-eC059Y  volume2  yum.log
/var:
adm  cache  db  empty  games  gopher  kerberos  lib  local  lock  log  mail  nis  opt  preserve  run  spool  tmp  volume1  www  yp
[root@56e31aedbd84 /]# 
我们可以看到 我们新建的centos-data1容器里面已经挂载了data容器里面的/var/volume1 /tmp/volume2 数据卷
挂载一个容器里面的数据卷到另一个容器 使用的是 --volumes-from参数 就像上面的例子,
我们上面是直接挂载data容器的数据卷到centos-data1里面,我们还可以间接的从centos-data1容器挂载data容器的数据卷到新的容器 例如:通过centos-data1容器挂载data容器的数据卷到新建的centos-data2容器里面
[root@localhost ~]# docker run --name=centos-data2 --volumes-from=centos-data1 -it docker.io/centos:latest /bin/bash
[root@af9ebd505157 /]#
[root@af9ebd505157 /]# ls /var /tmp
/tmp:
ks-script-eC059Y  volume2  yum.log
/var:
adm  cache  db  empty  games  gopher  kerberos  lib  local  lock  log  mail  nis  opt  preserve  run  spool  tmp  volume1  www  yp
[root@af9ebd505157 /]# 
看到了把 这样我们就间接的通过centos-data1挂载data容器的/var/volume1 /tmp/volume2 到新的容器centos-data2当中 这两个数据卷/var/volume1 /tmp/volume2 是可以读写的 因为我们没有加只读参数 默认是可以读写的 这样我们就可以在多个容器当中共享data容器里面的数据卷的内容,也可以保存新的内容到里面。


本文章为本站原创文章,转载请注明出处!

发表评论

电子邮件地址不会被公开。 必填项已用*标注

CAPTCHAis initialing...