Предоставить общий доступ к каталогу Windows в Docker-контейнере Linux - PullRequest
0 голосов
/ 13 января 2019

Я целый день пытался создать упрощенный пример совместного использования каталога Windows для контейнера Linux, работающего на хосте Windows Docker. Прочитайте все рекомендации и выполните следующее:

docker run -it --rm -p 5002:80 --name mount-test --mount type=bind,source=D:\DockerArea\PortScanner,target=/app/PortScannerWorkingDirectory barebonewebapi:latest

В каталоге источника PortScanner на хост-компьютере есть текстовый файл. Контейнер успешно создан. Проблема в том, что когда я пытаюсь

docker exec -it mount-test /bin/bash 

, а затем перечислите смонтированный каталог в контейнере PortScannerWorkingDirectory - он просто показывает, что он пуст. Также код C # не может прочитать содержимое файла хоста в сопоставленном каталоге. Я что-то упускаю здесь? Я чувствую, что застрял и не могу обмениваться файлами на хост-компьютере Windows с контейнером Linux.

Ответы [ 2 ]

0 голосов
/ 11 июня 2019

Перейти к docker settings -> shared drives -> reset credentials. а затем щелкните диск и нажмите кнопку «Применить».

затем выполните следующую команду в соответствии с предложением docker

docker run --rm -v c:/Users:/data alpine ls /data
0 голосов
/ 15 января 2019

После нескольких дней решения проблемы я нашел вполне очевидный ответ. Несмотря на то, что диски C и D уже использовались в Docker в настройках Docker, я провел эксперимент и повторно поделился обоими дисками (в настройках агента Docker для Windows есть специальная кнопка Reset Credentials для этой цели). После этого проблема решена. Поэтому сохраните его здесь с надеждой, что это может помочь кому-то еще, так как это похоже на сбой с разрешениями или подобным. Эту проблему довольно сложно диагностировать - когда есть проблема, контейнер Docker просто тихо записывает в свой доступный для записи слой, и не появляется никаких ошибок.

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