1. 程式人生 > 其它 >docker資料卷容器

docker資料卷容器

多個MySQL同步資料

啟動3個centos容器

建立並啟動第一個centos容器docker01

[root@iZmu0fa4hv0jwzZ ~]# docker images
REPOSITORY    TAG       IMAGE ID       CREATED        SIZE
test/centos   1.0       11bfc295e9b3   4 hours ago    209MB
tomcat02      1.0       c93f6d59c630   19 hours ago   672MB
tomcat        9.0       5505f7218e4d   4
days ago 667MB nginx latest d1a364dc548d 3 weeks ago 133MB mysql 5.7 2c9028880e58 5 weeks ago 447MB centos latest 300e315adb2f 6 months ago 209MB [root@iZmu0fa4hv0jwzZ ~]# docker run -it --name docker01 test/centos:1.0

Ctrl + P + Q退出當前容器

建立並啟動第二個centos容器docker02並將docker02與docker01掛載

[root@iZmu0fa4hv0jwzZ ~]# docker run -it --name docker02 --volumes-from docker01 test/centos:1.0
[root@ef9fcf1bba1e /]# 

開啟第二個Xshell會話,進入容器一併在volume01目錄下建立一個docker01檔案

[root@iZmu0fa4hv0jwzZ ~]# docker attach fff99b389819
[root@fff99b389819 /]# cd volume01
[root@fff99b389819 volume01]# ls
[root@fff99b389819 volume01]# touch docker01
[root@fff99b389819 volume01]# 

在容器二的volume01目錄下檢視

[root@ef9fcf1bba1e /]# cd volume01
[root@ef9fcf1bba1e volume01]# ls
docker01
[root@ef9fcf1bba1e volume01]# 

可以發現容器一建立的docker01檔案,說明docker01建立的檔案同步到了docker02

建立並啟動第三個容器docker03並將docker03與docker01掛載

進入volume01目錄

[root@iZmu0fa4hv0jwzZ ~]# docker run -it --name docker03 --volumes-from docker01 test/centos:1.0
[root@174903c30beb /]# cd volume01
[root@174903c30beb volume01]# ls
docker01

可以看見volume01目錄下依然有docker01檔案

在docker03的volume01目錄下建立docker03檔案

[root@174903c30beb volume01]# touch docker03
[root@174903c30beb volume01]# ls
docker01  docker03

進入docker01的volume01目錄下檢視

[root@fff99b389819 volume01]# ls
docker01  docker03

發現存在docker03檔案

說明實現了容器間的資料共享

退出並刪除docker01

[root@fff99b389819 volume01]# exit
[root@iZmu0fa4hv0jwzZ ~]# docker rm -f fff99b389819
fff99b389819

在docker03容器中檢視volume01檔案

[root@174903c30beb volume01]# ls
docker01  docker03

發現docker01檔案依然存在

結論

容器之間配置資訊的傳遞,資料卷容器的生命週期一直持續到沒有容器使用為止

但是一旦你持久化到了本地,這個時候,本地的資料是不會刪除的