Docker卷 - 来自空白,来自网络共享

时间:2015-12-17 14:11:34

标签: docker network-share volumes

我有两个容器设置为数据卷,我可以进入数据容器并浏览从网络共享中挂载的文件,而不会出现任何问题。

当我转到装有卷的文件夹时,第二个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

1 个答案:

答案 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)