使用主机上的文件替换装入的文件夹后,Docker overlay文件夹出错

时间:2016-11-06 14:42:26

标签: docker docker-container

我有一个Docker容器,主机中装有文件夹(noureldin.local.crt是一个文件夹):

etc/ssl/CA/ICA01/keys/noureldin.local.crt:etc/ssl/samba.crt:ro

然后我从主机中删除了该文件夹并创建了一个名称完全相同的文件而不是同一路径中的文件夹(noureldin.local.crt现在是一个文件),然后重新启动容器,但现在无法启动容器,因为docker告诉这不是文件夹,出现此错误:

d241b7e25143187fbf8258a664f5d409d1abd4d9578f045cb493df26ed204d46
docker: Error response from daemon: invalid header field value "oci runtime error: container_linux.go:247: starting container process caused \"process_linux.go:359: container init caused \\\"rootfs_linux.go:53: mounting \\\\\\\"/etc/ssl/CA/ICA01/keys/noureldin.local.crt\\\\\\\" to rootfs \\\\\\\"/var/lib/docker/overlay/8888974e268a54dafd22ccb2d05f9cd33da4bfa70d3ee1df0070fcc8c804c411/merged\\\\\\\" at \\\\\\\"/var/lib/docker/overlay/8888974e268a54dafd22ccb2d05f9cd33da4bfa70d3ee1df0070fcc8c804c411/merged/etc/ssl/samba.crt\\\\\\\" caused \\\\\\\"not a directory\\\\\\\"\\\"\"\n".

在这里我尝试删除我在叠加文件夹中的错误中看到的路径,但是我总是在新创建的路径中遇到相同的错误。 (我知道我不应该手动删除任何东西)。

之后我再次尝试使用相同的名称而不是文件来恢复文件夹(就像第一步一样)。但现在容器无法启动并退出,错误 126

我尝试删除然后重新创建容器,但我总是得到错误(它与我从主机挂载的路径有关)。

有人可以帮助我解决这个问题(我想保持路径相同)。

1 个答案:

答案 0 :(得分:0)

我尝试使用Docker版本1.12.3 (请参阅下面的shell输出)重现这一点。删除目录并将其替换为文件会导致相同的错误。但是,一旦我删除了文件并将目录放回原处,我就可以重新启动容器了。该目录也被重新创建。

我唯一能看出你做了什么和我做了什么之间的不同之处就是你看起来像是在使用卷的相对路径(我认为它不受支持),或者它可以是导致Houses被删除的复制/粘贴内容。目录名称/路径也不同,但也不应该有所不同。

/