Docker_数据卷容器
生活随笔
收集整理的這篇文章主要介紹了
Docker_数据卷容器
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
什么是數據卷容器?
命名的容器掛載數據卷,其他容器通過掛載這個(父容器)實現數據共享,掛在數據卷的容器,稱為數據卷容器。
以我上一篇文章Docker_容器數據卷新建的lgz/centos鏡像運行容器,并取名字mycentos01
測試命令:docker run -it --name mycentos01 lgz/centos:build01
[root@localhost myDocker]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE lgz/tomcat build01 6ce2360a3c6c 2 hours ago 507MB lgz/centos build01 0b71e009561a 2 hours ago 203MB tomcat jdk8-openjdk c81106060722 2 days ago 507MB centos 7 5e35e350aded 12 days ago 203MB centos latest 0f3e07c0138f 7 weeks ago 220MB [root@localhost myDocker]# docker run -it --name mycentos01 lgz/centos:build01 [root@3586d60e5c03 /]# ls anaconda-post.log bin data1 data2 data3 dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var可以看到這個容器中自帶有三個數據卷,data1 data2 data3。(具體怎么回事,請閱讀上一篇文章Docker_容器數據卷)
運行另一個mycentos02容器,掛載mycentos01
命令格式:docker run -it --name [容器名稱] --volumes-from [需要掛載的容器名稱或者id] [鏡像名[:TAG]]
測試命令:docker run -it --name mycentos02 --volumes-from 3586d60e5c03 lgz/centos:build01
[root@localhost myDocker]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3586d60e5c03 lgz/centos:build01 "/bin/sh -c /bin/bash" 4 minutes ago Up 4 minutes mycentos01 [root@localhost myDocker]# docker run -it --name mycentos02 --volumes-from 3586d60e5c03 lgz/centos:build01 [root@df2b623b245e /]# ls anaconda-post.log bin data1 data2 data3 dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var運行第三個容器,mycentos03,同樣掛載mycentos01
[root@localhost myDocker]# docker run -it --name mycentos03 --volumes-from 3586d60e5c03 lgz/centos:build01 [root@04f891897f25 /]# ls anaconda-post.log bin data1 data2 data3 dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var [root@04f891897f25 /]#三個容器同樣帶有data1 data2 data3 數據卷,因為他們都來自于同一個鏡像。
現在來測試在mycentos01中的data1里面添加文件,其他兩個容器里面是否會改變
[root@04f891897f25 /]# [root@localhost myDocker]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 04f891897f25 lgz/centos:build01 "/bin/sh -c /bin/bash" 3 minutes ago Up 3 minutes mycentos03 df2b623b245e lgz/centos:build01 "/bin/sh -c /bin/bash" 8 minutes ago Up 8 minutes mycentos02 3586d60e5c03 lgz/centos:build01 "/bin/sh -c /bin/bash" 14 minutes ago Up 14 minutes mycentos01#打開 mycentos01 并且新建centos01AddFile.txt文件 [root@localhost myDocker]# docker attach mycentos01 [root@3586d60e5c03 /]# cd /data1 [root@3586d60e5c03 data1]# ll total 0 [root@3586d60e5c03 data1]# touch centos01AddFile.txt [root@3586d60e5c03 data1]# ll total 0 -rw-r--r--. 1 root root 0 Nov 24 14:14 centos01AddFile.txt#打開 mycentos02 [root@localhost myDocker]# docker attach mycentos02 [root@df2b623b245e /]# cd data1 [root@df2b623b245e data1]# ll total 0 -rw-r--r--. 1 root root 0 Nov 24 14:14 centos01AddFile.txt#打開 mycentos03 [root@localhost myDocker]# docker attach mycentos03 [root@04f891897f25 /]# ls /data1 -l total 0 -rw-r--r--. 1 root root 0 Nov 24 14:14 centos01AddFile.txt可以看到,在mycentos01中創建文件,其他兩個容器的data1數據卷中會同步共享這個文件。
現在來測試刪除mycentos01容器后,對其他兩個容器的數據卷會不會有影響
[root@localhost myDocker]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 04f891897f25 lgz/centos:build01 "/bin/sh -c /bin/bash" 4 hours ago Up 4 hours mycentos03 df2b623b245e lgz/centos:build01 "/bin/sh -c /bin/bash" 4 hours ago Up 4 hours mycentos02 3586d60e5c03 lgz/centos:build01 "/bin/sh -c /bin/bash" 4 hours ago Up 4 hours mycentos01 [root@localhost myDocker]# docker rm -f mycentos01 mycentos01 [root@localhost myDocker]# docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 04f891897f25 lgz/centos:build01 "/bin/sh -c /bin/bash" 4 hours ago Up 4 hours mycentos03 df2b623b245e lgz/centos:build01 "/bin/sh -c /bin/bash" 4 hours ago Up 4 hours mycentos02#打開mycentos02容器,并創建一個文件 [root@localhost myDocker]# docker attach mycentos02 [root@df2b623b245e data1]# ll total 0 -rw-r--r--. 1 root root 0 Nov 24 14:14 centos01AddFile.txt [root@df2b623b245e data1]# touch centos02AddFile.txt [root@df2b623b245e data1]# ll total 0 -rw-r--r--. 1 root root 0 Nov 24 14:14 centos01AddFile.txt -rw-r--r--. 1 root root 0 Nov 24 14:23 centos02AddFile.txt#打開mycentos03容器 [root@localhost myDocker]# docker attach mycentos03 [root@04f891897f25 /]# ls /data1 -l total 0 -rw-r--r--. 1 root root 0 Nov 24 14:14 centos01AddFile.txt -rw-r--r--. 1 root root 0 Nov 24 14:23 centos02AddFile.txt可以看到,數據卷共享并沒有因為刪除mycentos01而失效,可以得出結論:容器之間配置信息的傳遞,數據卷的生命周期會一直持續到沒有容器使用它為止。
總結
以上是生活随笔為你收集整理的Docker_数据卷容器的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 从理解透视到场景构图
- 下一篇: 逻辑回归分析实训----乳腺癌肿瘤预测