Warum geben einige Host-Volumes in Docker-Containern den Fehler "zu viele Ebenen symbolischer Links" aus?

8

Ich verwende Docker mit einem gemounteten Hostverzeichnis:

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

Dateien in /usr/groups/thing/foosind zugänglich:

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

Dateien in /usr/groups/thing/barsind jedoch nicht:

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

Dies ist auf Debian und /usr/groups/thingist ein automatisch bereitgestelltes NFS-Volume.

Peter Westlake
quelle

Antworten:

8

Dies wird dadurch verursacht, dass Verzeichnisse beim Ausführen des Containers nicht automatisch bereitgestellt werden. Ich hatte gedacht, dass dies /usr/groups/thingder Automount-Punkt ist, aber offensichtlich werden die Unterverzeichnisse einzeln automatisch gemountet. Die Lösung besteht darin, sicherzustellen, dass jeder montiert ist, bevor Sie den Behälter betreten:

$ (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
Peter Westlake
quelle