Nfs

為什麼 Docker 容器中的某些主機捲會出現“符號連結級別過多”的錯誤?

  • October 24, 2020

我正在執行安裝了主機目錄的 docker:

$ docker run -v /usr/groups/thing -ti imagename /bin/bash

中的文件/usr/groups/thing/foo可訪問:

# ls /usr/groups/thing/foo
a b c

但其中的文件/usr/groups/thing/bar不是:

# ls /usr/groups/thing/bar
ls: cannot open directory /usr/groups/thing/bar: Too many levels of symbolic links

這是在 Debian 上,/usr/groups/thing是一個自動掛載的 NFS 卷。

這是由於容器執行時目錄未自動掛載造成的。我以為那/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

我剛剛遇到了這個問題,雖然我找到的解決方案肯定不會適合所有人,但這是我設置的一個微妙部分導致了這個問題。

為了節省空間,我將 Docker 目錄從我%APPDATA%的 SSD 上的目錄移到了更大的 HDD,並設置了一個連接點以指向它的新家。

我最終記得是這種情況,並將目錄移回。重新啟動我的電腦,錯誤停止發生。

就像我說的那樣,這很適合我,但它為我解決了這個問題。

引用自:https://serverfault.com/questions/640895