我有一个 SMB 共享驱动器,我正在从我的 Ubuntu 操作系统访问它。我需要连接到 VPN 才能访问此共享驱动器。我通过 Docker 容器运行的应用程序需要访问此共享 SMB 驱动器。我知道使用 Docker Volume create 应该可以轻松实现这一点,并且我已经阅读了文档,但我仍然遇到问题。这是我运行的创建卷和运行容器的代码。我能够毫无问题地创建卷。但容器没有运行。
docker volume create \
--driver local \
--opt type=cifs \
--opt device=//IPADDRESS/array/ \
--opt o=username=usr,password=******,file_mode=0777,dir_mode=0777 \
--name arrayvolume
docker run -it --rm -v /home/usr/Documents/Research/:/workspace/research \
-v arrayvolume:/workspace/array --privileged --gpus all -p 8888:8888 imagerun bash
当我运行 docker run 行时,出现此错误:
docker: Error response from daemon: error while mounting volume '/var/lib/docker/volumes/array-volume/_data': failed to mount local volume: mount //IPADDRESS/array/:/var/lib/docker/volumes/array-volume/_data, data: username=usrname,password=******,file_mode=0777,dir_mode=0777: operation not supported.
我尝试找到已安装的 SMB 驱动器的路径,并尝试运行下面的代码。但它也返回了错误,提示“无效模式”,我认为这是因为文件夹名称中的冒号,我无法更改。
docker run -it --rm -v /home/usr/Documents/Research/:/workspace/research \
-v /run/user/1000/gvfs/smb-share:server=IPADDRESS,share=array:/workspace/array \
--privileged --gpus all -p 8888:8888 -p 8050:8050 imagerun bash
我尝试过使用 docker compose,但如果卷挂载不起作用,我不确定它是否会起作用。任何指导都值得赞赏。