Сетевое хранилище (SMB / CIFS) в Windows Docker - PullRequest
0 голосов
/ 31 октября 2018

Я пытаюсь сопоставить сетевое хранилище SMB с Docker в среде разработки, чтобы сделать его доступным для контейнеров так же, как и для общего локального диска. Это означает, что для всей Docker VM, а не для отдельных контейнеров. Другому приложению требуется сетевое хранилище через SMB-доступ, но оно находится в другом домене, поэтому я не могу поделиться с ним локальными дисками. Сетевые диски Windows также не работают с Docker.

Текущий обходной путь - открыть вложенные оболочки на Docker, получить доступ к виртуальной машине и затем смонтировать сетевое хранилище. Я пробовал это как пакетный файл Windows, но он останавливается при первой подсказке оболочки и больше не вводит через "echo".

docker run --rm -it --privileged --pid=host justincormack/nsenter1
echo ctr -n services.linuxkit task exec -t --exec-id foo docker-ce /bin/sh
echo mkdir host_mnt/mystorage
echo mkdir host_mnt/mystorage/Videos
echo mkdir host_mnt/mystorage/Videos/my-private-storage
echo mount -v -t cifs -o username=myname,password=p@s$w0rd,file_mode=0777,dir_mode=0777,vers=2.0,uid=1234,gid=1234 //mystorage.mycompany.com/Videos/my-private-storage /host_mnt/mystorage/Videos/my-private-storage
echo exit
echo exit

Чтобы ввести это в консоль (без «echo»), требуется удалить / перезапустить контейнеры Docker впоследствии.

Есть ли способ легко подключить сетевой диск к Docker и при запуске Docker? Или любой другой способ легко использовать ресурс SMB?

1 Ответ

0 голосов
/ 31 октября 2018

Я думаю, что самая большая проблема, с которой вы столкнетесь, заключается в том, что вся виртуальная машина Moby, используемая для Docker для Windows, имеет файловую систему только для чтения. Если бы вы просто попытались выполнить монтирование непосредственно из самого Moby, вы бы получили, что в нем отсутствуют вспомогательные приложения для CIFS / NFS.

mount: /mnt: bad option; for several filesystems (e.g. nfs, cifs) you might need a /sbin/mount.<type> helper program.

В большинстве сред мы просто устанавливаем cifs-utils или nfs-common, но, поскольку это файловая система только для чтения, я не могу придумать, как это сделать.

...