![如何使用用户名、密码、uid 和 gid 创建 CIFS docker 卷](https://linux22.com/image/690484/%E5%A6%82%E4%BD%95%E4%BD%BF%E7%94%A8%E7%94%A8%E6%88%B7%E5%90%8D%E3%80%81%E5%AF%86%E7%A0%81%E3%80%81uid%20%E5%92%8C%20gid%20%E5%88%9B%E5%BB%BA%20CIFS%20docker%20%E5%8D%B7.png)
我正在尝试使用创建docker卷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
这是我想获取的 mount 命令。我可以在其中获取用户名和密码,但仅限于使用 .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 传递这些选项的权威语法。
答案1
有点晚了...但是这是解决方案:
docker volume create \
--driver local \
--opt type=cifs \
--opt device=//server.domain/path/to/share \
--opt o=addr=server.domain,username=myuser,password=mypw,file_mode=0777,dir_mode=0777 \
--name myvolume
在某些情况下,DNS名称不起作用,这个问题已经在这个公共关系现在可以通过添加来使用域名地址在 CIFS 选项中。使用选项“credentials”而不是“username”和“password”对我来说不起作用。我总是收到错误“未指定用户名”。从 shell (mount -t cifs //server/path -o credentials=/etc/cifs.cred /tmp/mnt) 运行正常。