我有两个容器设置为数据卷,我可以进入数据容器并浏览从网络共享中挂载的文件,而不会出现任何问题。
当我转到装有卷的文件夹时,第二个docker实例上的文件夹是否存在但是应该存在的所有文件和目录都不可见。
这曾经工作过,所以我只能假设它是由于docker 1.9我在linux和mac盒子上看到这个。
关于原因的任何想法?这是一个错误还是我可以调查的其他内容?
检查的输出。
enum
文件以这种方式挂载在docker文件中
"Volumes": {
"/mnt/shared_app_data": {},
"/srv/shared_app_data": {}
},
"Mounts": [
{
"Name": "241d3e495f312c79abbeaa9495fa3b32110e9dca8442291d248cfbc5acca5b53",
"Source": "/var/lib/docker/volumes/241d3e495f312c79abbeaa9495fa3b32110e9dca8442291d248cfbc5acca5b53/_data",
"Destination": "/mnt/shared_app_data",
"Driver": "local",
"Mode": "",
"RW": true
},
{
"Name": "061f16c066b59f31baac450d0d97043d1fcdceb4ceb746515586e95d26c91b57",
"Source": "/var/lib/docker/volumes/061f16c066b59f31baac450d0d97043d1fcdceb4ceb746515586e95d26c91b57/_data",
"Destination": "/srv/shared_app_data",
"Driver": "local",
"Mode": "",
"RW": true
}
],
然后当容器启动时运行。
RUN echo '/srv/path ipaddress/255.255.255.0(rw,no_root_squash,subtree_check,fsid=0)' >> /etc/exports
RUN echo 'ipaddress:/srv/path /srv/shared_app_data nfs defaults 0 0' >> /etc/fstab
RUN echo 'ipaddress:/srv/path /mnt/shared_app_data nfs defaults 0 0' >> /etc/fstab
答案 0 :(得分:0)
您需要确保第二个容器确实安装了在第一个容器中声明的VOLUME
docker run --volumes-from first_container second_container
确保第一个容器确实包含正确的文件:请参阅" Locating a volume"
docker inspect first_container
# more precisely
sudo ls $(docker inspect -f '{{ (index .Mounts 0).Source }}' first_container)