Docker中两个容器之间实现数据共享

启动一个容器

#使用指定路径方式挂载数据卷,让容器与宿主机实现数据共享。方便查看内容。
[root@izbp1doatyz9rmpmxs06naz /]# docker run -it -v /home/myFiles:/home centos /bin/bash
[root@cd2c0250ca93 /]# cd /home
[root@cd2c0250ca93 home]# touch test1.java
[root@cd2c0250ca93 home]# ls
test1.java
[root@cd2c0250ca93 home]# [root@izbp1doatyz9rmpmxs06naz /]# cd /home/myFiles
[root@izbp1doatyz9rmpmxs06naz myFiles]# ls
test1.java

再次启动另一个容器,让两个容器实现数据同步

–volumes-from 容器名

[root@izbp1doatyz9rmpmxs06naz myFiles]# docker run -it --name mycentos01 --volumes-from peaceful_elbakyan centos
[root@54e0993102d2 /]# cd /home
[root@54e0993102d2 home]# ls
test1.java

在这里插入图片描述
同容器1一样,同样的挂载路径。相当于继承了容器1的挂载方式和路径
在这里插入图片描述

如果删除容器1,查看容器2和宿主机之间的数据卷变化
1、删除容器1

[root@izbp1doatyz9rmpmxs06naz myFiles]# docker ps
CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS          PORTS     NAMES
54e0993102d2   centos    "/bin/bash"   4 minutes ago    Up 4 minutes              mycentos01
cd2c0250ca93   centos    "/bin/bash"   18 minutes ago   Up 18 minutes             peaceful_elbakyan
[root@izbp1doatyz9rmpmxs06naz myFiles]# docker rm -f cd2c0250ca93
cd2c0250ca93
[root@izbp1doatyz9rmpmxs06naz myFiles]# docker ps -a
CONTAINER ID   IMAGE     COMMAND       CREATED         STATUS         PORTS     NAMES
54e0993102d2   centos    "/bin/bash"   5 minutes ago   Up 5 minutes             mycentos01

2、在容器2的/home的目录下进行操作

#可以发现,容器1删除后,对于容器2无如何的影响。之前创建的test1.java文件还在
[root@izbp1doatyz9rmpmxs06naz myFiles]# docker attach 54e0993102d2
[root@54e0993102d2 home]# touch delete.java
[root@54e0993102d2 home]# ls
delete.java  test1.java

3、在宿主机上查看

#同样的也无如何的影响
[root@54e0993102d2 home]# read escape sequence
[root@izbp1doatyz9rmpmxs06naz myFiles]# ls
delete.java  test1.java

小结:
使用–volumes-from list命令,相当于把两个容器之前的数据卷进行了双向绑定。在绑定的同时,也在每一个容器中复制了一份相同的数据。所以,当其中的一个容器被删除掉,对于其他的容器来说,是毫无影响的。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值