[置顶] Docker中使用多个volume-from的一个问题

标签: DockerCloud
2945人阅读 评论(0) 收藏 举报
分类:

假设大家已经对Docker比较熟悉,前段时间在使用Docker中的Volume-from的时候遇到一个问题,就是如果同时从两个不同的Docker容器(Container)中,使用Volume-from命令,且Volume-from命令后面跟的是相同的文件夹卷标(Volume)名字,但是其文件夹中的内容不一样的时候,其后面的文件夹会覆盖前面的卷标(Volume)的文件夹的内容,并前面的卷标(Volume)的内容会被清空。通过搜索,我发现这篇文章https://realguess.net/2014/12/31/mount-multiple-data-volumes-and-multiple-data-volume-containers-in-docker/ ,也描述了我发现的问题,请大家使用的时候一定要特别注意和小心。

具体的例子和重现操作步骤如下,

1. 创建2个容器voltest1和voltest2

sudo docker run -itd --name voltest1 -v /opt/mytest ubuntu sh
sudo docker run -itd --name voltest2 -v /opt/mytest ubuntu sh

这两个容器同时共享同一个卷标(/opt/mytest)


2. 登陆voltest1 并先建一个文件1.txt

docker exec -it voltest1  sh
cd /opt/mytest
touch 1.txt</span>


注意上面的cd /opt/mytest 和touch 1.txt 两条语句是在Docker的容器voltest1执行的 

3. 登陆voltest2 并先建一个文件2.txt

docker exec -it voltest2  sh
cd /opt/mytest
touch 2.txt


注意上面的cd /opt/mytest 和 touch 1.txt 两条语句是在Docker的容器voltest2中执行的

4. 使用下面的命令,

docker run -it --name hellworld --volumes-from=voltest1--volumes-from=voltest2ubuntu sh
ls /opt/mytest


 使用上面的命令之后,我们会发现,在新的容器,/opt/mytest文件夹中,只有2.txt的文件

注意上面的ls /opt/mytest 是在Docker的容器helloworld执行的 



1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:386029次
    • 积分:6350
    • 等级:
    • 排名:第4081名
    • 原创:228篇
    • 转载:0篇
    • 译文:5篇
    • 评论:157条
    博客专栏