Сетевой ресурс удаленного монтирования контейнера с хоста Windows - PullRequest
2 голосов
/ 09 июля 2020

Описание проблемы

Я хотел бы указать монтирование к сетевому ресурсу из devcontainer. json Свойство "mounts", чтобы я мог писать сценарии, которые извлекают файлы из этого сетевого ресурса и могут работать на несколько хост-компьютеров.

Я вижу, что удаленные контейнеры VSCode просто передают значение свойства "mounts" параметру docker run --mount. Поэтому, если я смогу найти способ заставить это работать, тогда я должен быть настроен.

Я могу смонтировать сетевой ресурс из дистрибутива WSL2 с помощью sudo mount -t drvfs //myserver/projects /mnt/p и смонтировать его в контейнере с docker run --rm -it --mount source=/mnt/p,target=/mnt/p,type=bind,readonly=true ubuntu:18.04 bash и Я могу указать этот каталог в контейнере, чтобы получить содержимое общего сетевого ресурса. Но это работает только тогда, когда я выполняю команды docker из окна терминала распространения WSL2. Чтобы это работало из удаленных контейнеров VSCode, мне нужно, чтобы это работало с хост-машины Windows. И мне еще предстоит найти какие-либо эквивалентные команды, которые работают из стандартной Windows командной строки.

Что я пробовал

Все они были предприняты из командной строки Windows в хост-машина. И у меня есть подключенный сетевой диск от P: до \\myserver\projects.

# Even with the mount to the network share still present in the primary WSL distribution
docker run --rm -it --mount source=/mnt/p,target=/mnt/p,type=bind,readonly=true ubuntu:18.04 bash
docker: Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /mnt/p
docker run --rm -it --mount source=\\myserver\projects,target=/mnt/p,type=bind,readonly=true ubuntu:18.04 bash
docker: Error response from daemon: \\myserver\projects%!(EXTRA string=is not a valid Windows path).
docker run --rm -it --mount source=//myserver/projects,target=/mnt/p,type=bind,readonly=true ubuntu:18.04 bash
docker: Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /myserver/projects.
docker run --rm -it --mount source=P:\,target=/mnt/p,type=bind,readonly=true ubuntu:18.04 bash
ls /mnt/p
# Empty directory
docker volume create --opt type=cifs --opt device=//myserver/projects projects
docker run --rm -it --mount source=projects,target=/mnt/p,type=volume,readonly=true ubuntu:18.04 bash
docker: Error response from daemon: error while mounting volume '/var/lib/docker/volumes/projects/_data': failed to mount local volume: mount //myserver/projects:/var/lib/docker/volumes/projects/_data: invalid argument.
docker volume create --opt type=cifs --opt device=P:\ projects
docker: Error response from daemon: error while mounting volume '/var/lib/docker/volumes/projects/_data': failed to mount local volume: mount P:\:/var/lib/docker/volumes/projects/_data: invalid argument.
New-SmbGlobalMapping -RemotePath \\myserver\projects -LocalPath R:
docker run --rm -it --mount source=R:\,target=/mnt/p,type=bind,readonly=true ubuntu:18.04 bash
docker: Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /run/desktop/mnt/host/uC/myserver/projects.
New-SmbGlobalMapping -RemotePath \\myserver\projects -LocalPath R:
docker run --rm -it --mount source=R:\,target=/mnt/p,type=bind,readonly=true ubuntu:18.04 bash
docker: Error response from daemon: invalid mount config for type "bind": bind source path does not exist: /run/desktop/mnt/host/uC/myserver/projects.

И я пробовал все комбинации \ vs / с похожими ошибками

1 Ответ

0 голосов
/ 20 июля 2020

Кажется, это соответствует вашим потребностям:

Совместное использование Windows папок с контейнерами

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