我正在运行一个主机目录的docker:
$ docker run -v /usr/groups/thing -ti imagename /bin/bash
/usr/groups/thing/foo是可访问的:
# ls /usr/groups/thing/foo abc
但是/usr/groups/thing/bar中的文件不是:
# ls /usr/groups/thing/bar ls: cannot open directory /usr/groups/thing/bar: Too many levels of symbolic links
这在Debian上,而/usr/groups/thing是一个自动安装的NFS卷。
这是由于容器运行时目录没有被自动挂载造成的。 我以为/usr/groups/thing是自动挂载点,但显然子目录是自动挂载的。 解决的办法是确保每一个进入容器之前安装:
$ (cd /usr/groups/thing/foo; cd /usr/groups/thing/bar) $ docker run -v /usr/groups/thing -ti imagename /bin/bash # ls /usr/groups/thing/bar def