Назад | Перейти на главную страницу

Как создать том докера CIFS с именем пользователя, паролем, uid и gid

Я пытаюсь создать тома докеров, используя Docker-Volume-Netshare водитель отсюда: https://github.com/ContainX/docker-volume-netshare

Последовательность должна быть такой:

docker volume create -d cifs <some_options>
docker run -v <the_volume> <other_docker_options>

и я могу заставить его работать часть пути, но, хоть убей, я не могу заставить его пройти все необходимые мне варианты.

Вместо того, чтобы пытаться перечислить бесчисленное количество различных видов отказов, я предпочел бы сформулировать свою цель. Внизу docker-volume-netshare выполнит mount -t cifs ... команда. Это можно увидеть в журнале, когда verbose установлен на true.

Это команда монтирования, которую я пытаюсь получить. Я могу получить там имя пользователя и пароль, но только при использовании файла .netrc, и я не нашел способа ввести uid и gid в команду.

mount -t cifs -o username=myusername,password=mypasswd,uid=500,gid=499,rw //myserver.example.net/mysharename /the_mount_point/

Итак, я ищу авторитетный синтаксис для передачи этих параметров через docker-volume-netshare.

Немного поздно ... Но вот решение:

docker volume create \
     --driver local \
     --opt type=cifs \
     --opt device=//server/path/to/share \
     --opt o=username=myuser,password=mypw,file_mode=0777,dir_mode=0777 \
     --name myvolume

В некоторых случаях DNS-имя не работало, поэтому мне приходилось использовать IP. Использование опции «учетные данные» вместо «имени пользователя» и «пароля» у меня не сработало. Я всегда получаю сообщение об ошибке «Имя пользователя не указано». Из оболочки (mount -t cifs // server / path -o credentials = / etc / cifs.cred / tmp / mnt) все работает нормально.