有人建议在这里发帖。转发自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-compose
Windows 将 NodeJS 应用程序部署到 debian VPS --context
,但遇到了同样的问题,显然没有任何原因
我尝试了上面所有的解决方案,清除了图像缓存和构建缓存,但仍然没有任何效果,然后我发现我的桌面版 docker 已自动升级,所以我决定也在我的 VPS 中升级 docker,一切都运行顺利。
所以我猜这是因为 docker 内部构建过程发生了一些变化,一些与存储驱动程序有关的变化,导致了版本之间的重大变化,但我不确定。我希望这至少可以帮助找到更具体的解决方案。
这是我在 debian 中升级 docker 所遵循的指南https://docs.wavemaker.com/learn/on-premise/upgrade/docker-upgrade/