Почему некоторые тома хоста в контейнерах Docker выдают ошибку "слишком много уровней символических ссылок"?

Я запускаю docker с подключенным каталогом хоста:

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

Файлы в /usr/groups/thing/foo доступны:

# ls /usr/groups/thing/fooa b c

Но файлы в /usr/groups/thing/bar не:

# ls /usr/groups/thing/barls: 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/bard e f

Я только что столкнулся с этой проблемой, и хотя решение, которое я нашел, конечно, будет не для всех, проблема была вызвана тонкой частью моей настройки.

Чтобы сэкономить место, я переместил каталог Docker из своего %APPDATA% каталог на моем твердотельном накопителе, на мой гораздо больший жесткий диск и настройте соединение, чтобы указать на него в его новом доме.

В конце концов я вспомнил, что это так, и переместил каталог обратно. Перезагрузил свой компьютер, и ошибка перестала возникать.

Как я уже сказал, это довольно нишевая идея, но она решила ее для меня.