0

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

当我转到带有已安装卷的文件夹时,在第二个 docker 实例上,该文件夹存在,但所有应该存在的文件和目录都不可见。

这曾经有效,所以我只能假设它是由于 docker 1.9 我在 linux 和 mac 机器上看到的。

关于原因的任何想法?这是一个错误还是我可以调查的其他问题?

检查的输出。

    "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
    }
],

文件以这种方式安装在docker文件中

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

然后当容器启动时它运行。

service rpcbind start
mount -a 
4

1 回答 1

0

您需要确保第二个容器确实安装了第一个容器中声明的 VOLUME

docker run --volumes-from first_container second_container

确保第一个容器确实有正确的文件:请参阅“定位卷

docker inspect first_container
# more precisely
sudo ls $(docker inspect -f '{{ (index .Mounts 0).Source }}' first_container)
于 2015-12-18T07:20:04.683 回答