跳至正文

如何挂载 SMB 网络共享文件夹到 Docker 容器?

挂载步骤

  • 先创建一个 volume, 将里面的 //192.168.1.200/folder1/ (网络共享路径), username, password 替换为自己的。

docker volume create --driver local --opt type=cifs --opt device=//192.168.1.200/folder1/ --opt o=addr=192.168.1.200,username=myShareUser,password=123456,file_mode=0655,dir_mode=0655 --name network-share-1

  • 然后通过 -v 命令挂载到容器
    docker run -it -p 7000:8000 -v D:\gh-indocker\5:/index-data -v network-share-1:/NetworkShare/1 guihaidata:latest-cpu

注意事项/问题排查

Docker 中挂载网络共享文件夹(SMB)volume 后,容器启动失败?

docker volume create ..... --name network-share-1 命令不论网络共享设置是否正确,都能成功执行,但是,docker run -v network-share-1:/NetworkShare/1 命令则会进行连接尝试,如果失败会导致容器无法启动。
此时,您需要:

  • 先阅读理解容器启动失败时,给出的 volume 挂载错误信息
  • 删除启动失败的容器 (命令:docker rm 容器Id
  • 然后删除已经创建的 volume (命令:docker volume rm network-share-1
  • 然后,检查并调整配置,重新创建 volume 和 容器。

Docker 中挂载 SMB 中文文件名乱码问题

  • Docker 中挂载 SMB 网络共享文件夹,并给这个挂载的文件夹添加索引,默认中文文件名会乱码,将导致程序生成索引出错甚至可能生成索引进度卡住不动,请尝试先调整挂载,让中文文件名不会乱码

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注