构建 Docker 容器时 /var/lib/docker 中的链接过多错误

构建 Docker 容器时 /var/lib/docker 中的链接过多错误

有人建议在这里发帖。转发自https://stackoverflow.com/questions/59024392/too-many-links-in-var-lib-docker-error-while-building-docker-container


尝试运行docker-compose build并出现以下错误:

错误:... evalSymlinksInScope:/var/lib/docker/overlay2/a476d12eaac1c1e3cc684c992cf829b61b999959fd7d23d5a27120dbfd43e178/merged/opt/api/resources 中的链接太多

我在网上搜索并尝试运行以下命令,但没有任何效果:

docker network prune
docker images prune
docker system prune -a --volumes

如果我运行ln -ls /var/lib,这个文件夹中就没有任何内容/docker。这是指 Docker 容器吗?如果是这样,当我正在构建它的过程中,怎么可能会这样。任何有关如何解决此问题的想法都很好,谢谢。

答案1

有同样的问题,我修复了它

Docker -> 故障排除 -> 重置为出厂默认值

警告:所有容器和卷都将被删除

答案2

错误“链接过多”通常意味着有一个符号链接指向自身,而不是特定于 docker。

要了解发生了什么,请使用namei命令,通常是util-linux.

namei /var/lib/docker/overlay2/a476d12eaac1c1e3cc684c992cf829b61b999959fd7d23d5a27120dbfd43e178/merged/opt/api/resources

您应该看到与此类似的输出,并指示路径中某处的链接级别过多。

f: /var/lib/docker/overlay2/a476d12eaac1c1e3cc684c992cf829b61b999959fd7d23d5a27120dbfd43e178/merged/opt/api/resources
 d /
 d var
 d lib
 ...

答案3

我试图通过docker-composeWindows 将 NodeJS 应用程序部署到 debian VPS --context,但遇到了同样的问题,显然没有任何原因

我尝试了上面所有的解决方案,清除了图像缓存和构建缓存,但仍然没有任何效果,然后我发现我的桌面版 docker 已自动升级,所以我决定也在我的 VPS 中升级 docker,一切都运行顺利。

所以我猜这是因为 docker 内部构建过程发生了一些变化,一些与存储驱动程序有关的变化,导致了版本之间的重大变化,但我不确定。我希望这至少可以帮助找到更具体的解决方案。

这是我在 debian 中升级 docker 所遵循的指南https://docs.wavemaker.com/learn/on-premise/upgrade/docker-upgrade/

相关内容