Назад | Перейти на главную страницу

Почему некоторые тома хоста в контейнерах 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