
有人建議在這裡發文。轉發自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/
我在網上搜索並嘗試運行以下命令,但沒有任何效果:
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/