挂载步骤
- 先创建一个 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 网络共享文件夹,并给这个挂载的文件夹添加索引,默认中文文件名会乱码,将导致程序生成索引出错甚至可能生成索引进度卡住不动,请尝试先调整挂载,让中文文件名不会乱码