docker объем перегрузки предохранителя: конечная точка транспорта не подключена - PullRequest
4 голосов
/ 05 мая 2020

Итак, у меня эта удаленная папка /mnt/shared смонтирована с предохранителем. В основном он доступен, за исключением того, что время от времени будут некоторые отключения.

Фактическая смонтированная папка /mnt/shared снова становится доступной при повторном подключении.

Проблема в том, что я поместите эту папку в том docker, чтобы сделать ее доступной для моего приложения: /shared. Когда я запускаю контейнер, том доступен.

Но если между ними происходит отключение, а репозиторий /mnt/shared на хост-машине доступен, папка /shared недоступна из контейнера, и я получаю:

user@machine:~$ docker exec -it e313ec554814 bash
root@e313ec554814:/app# ls /shared 
ls: cannot access '/shared': Transport endpoint is not connected

Чтобы заставить его снова работать, единственное решение, которое я нашел, - это docker restart e313ec554814, что приводит к простою моего приложения и поэтому не является приемлемым решением.

Итак, мои вопросы:

  1. Это какая-то «ошибка» docker, не позволяющая повторно подключиться к смонтированной папке, когда она снова станет доступной?

  2. Могу ли я выполнить эту задачу вручную без перезапуска всего контейнера?

Спасибо

1 Ответ

0 голосов
/ 01 июня 2020

Я бы попробовал следующее решение.

Если вы подключите том к docker вот так:

docker run -v /mnt/shared:/shared my-image

Я бы создал промежуточный каталог /mnt/base/shared и смонтировал его на docker вот так:

ocker run -v /mnt/base/shared:/base/shared my-image

, и я также скорректирую свой код, чтобы он ссылался на новый путь или создавал ссылку с /base/shared на /shared внутри контейнера

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...