Docker中使用多个volume-from的一个问题

来源:互联网 发布:股票技术分析软件 编辑:程序博客网 时间:2024/06/05 10:57

假设大家已经对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 shsudo docker run -itd --name voltest2 -v /opt/mytest ubuntu sh

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


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

docker exec -it voltest1  shcd /opt/mytesttouch 1.txt</span>


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

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

docker exec -it voltest2  shcd /opt/mytesttouch 2.txt


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

4. 使用下面的命令,

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


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

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



1 0
原创粉丝点击