执行 docker pull 后在 /usr/local/bin 中'Too many levels of symbolic links'



我遇到了一个很奇怪的问题。我使用的是Oracle Enterprise Linux 6,我在上面安装了docker。安装之后,我使用docker pull命令拉出一个映像。我是这样做的:

docker pull sequenceiq/hadoop-docker:2.7.0

pull成功,并显示消息:

Status: Downloaded newer image for sequenceiq/hadoop-docker:2.7.0

但是在尝试运行任何常规linux命令后,结果是错误的:

-bash: /usr/local/bin/sudo: Too many levels of symbolic links

我尝试在/usr/local/bin下运行查找命令,mindepth为15,以找出是否有任何循环,它再次给出相同的错误

find: `/usr/local/bin': Too many levels of symbolic links

我不知道如何从这里开始。

这是由于容器运行时没有自动挂载目录造成的。我原以为/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
d e f

链接到serverfault.com的答案:

https://serverfault.com/questions/640895/why-do-some-host-volumes-in-docker-containers-give-the-error-too-many-levels-of

最新更新