首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从windows主机在docker容器中挂载samba目录?

如何从windows主机在docker容器中挂载samba目录?
EN

Stack Overflow用户
提问于 2022-10-24 04:26:49
回答 1查看 123关注 0票数 2

我在windows系统中使用了docker v20.10.17。我希望运行一个容器(jupyterhub/jupyterhub),并将一个目录挂载到其中,以共享数据(对于在容器系统中具有写权限的所有用户来说)。

共享目录来自另一个NAS (//192.168.1.5/文件夹/ shared _data),可以从主机系统正确地打开该目录。我在这里遵循创建CIFS/Samba卷指令,首先创建一个samba卷:

代码语言:javascript
复制
PS C:\Users\Administrator> docker volume create \
--driver local \
--opt type=cifs \
--opt device=//192.168.1.5/folder/shared_data \
--opt o=addr=192.168.1.5,username=myusername,password=mypassword,file_mode=0777,dir_mode=0777 \
--name cif-volume

成功地创建了一个名为cif-volume的卷。然后:

代码语言:javascript
复制
PS C:\Users\Administrator>docker run --rm -it -p 18000:8000 \
--name jhubcontainer \
--cap-add SYS_ADMIN \
--cap-add DAC_READ_SEARCH \
--privileged \
-v cif-volume:/etc/skel/shared_data jupyterhub-image

我收到了这样的错误信息:

代码语言:javascript
复制
docker: Error response from daemon: failed to mount local volume: mount //192.168.1.5/folder/shared_data:/var/lib/docker/volumes/cif-volume/_data, data: username=myusername,password=mypassword,file_mode=0777,dir_mode=0777: operation not supported.
See 'docker run --help'.

这件事需要帮助。

更新2022/11/03,并附有更新信息:

我试图在斯拉夫·库拉夫斯基的帮助下更新我的命令,但仍然有错误。在前面的问题中,我使用了一个伪地址和用户名。我将粘贴与真实地址和用户名一起使用的确切命令,而不进行任何修改。

代码语言:javascript
复制
PS C:\Users\Administrator> docker volume create --driver local --opt type=cifs --opt device="//172.16.90.50/public/shared_data" --opt o=addr=172.16.90.50,username=212,password=ziyuan,file_mode=0777,dir_mode=0777,vers=2.0 --name cif-volume
cif-volume
PS C:\Users\Administrator> docker run -it --rm -p 18000:8000 --name jhubcontainer -v cif-volume:/etc/skel/shared_data jupyterhub-20221021-mountsmb
docker: Error response from daemon: failed to mount local volume: mount //172.16.90.50/public/shared_data:/var/lib/docker/volumes/cif-volume/_data, data: addr=172.16.90.50,username=212,password=ziyuan,file_mode=0777,dir_mode=0777,vers=2.0: invalid argument.
See 'docker run --help'.
PS C:\Users\Administrator>

docker映像是"jupyterhub/jupyterhub",而"jupyterhub-20221021-mountsmb“是在安装了其他python包和配置后的备份。

为了确保地址是可访问的,我尝试了:

代码语言:javascript
复制
PS C:\Users\Administrator> net use m: \\172.16.90.50\public\shared /user:212 ziyuan
命令成功完成。

打印出来的"命令成功完成“意味着”命令成功“。我可以在资源管理器中看到我的骑马司机"M:“。

EN

回答 1

Stack Overflow用户

发布于 2022-11-02 18:33:45

将cifs版本添加到卷选项:vers=2.0

代码语言:javascript
复制
docker volume create \
--driver local \
--opt type=cifs \
--opt device=//192.168.1.5/folder/shared_data \
--opt o=addr=192.168.1.5,username=myusername,password=mypassword,file_mode=0777,dir_mode=0777,vers=2.0 \
--name cif-volume

为我工作,没有任何额外的特权和能力

代码语言:javascript
复制
docker run -it --rm --name cifs -v cif-volume:/mnt ubuntu:latest ls /mnt
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74176709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档