我试图用以下语法在Windows 10上挂载带有Docker容器的网络文件夹。使用UNC路径不起作用。我在Hyper-V和平稳版的Docker下运行。
docker run -v \\some\windows\network\path:/some/local/container在使用Docker之前,我可以使用VirtualBox将网络共享映射到内部文件夹。我尝试过将网络共享作为驱动器添加,但它在设置面板下没有显示为可用驱动器。
目前,我正在使用mklink将本地文件夹镜像到网络文件夹,但我不希望将此作为解决方案。
发布于 2019-11-13 14:56:15
使用基于Windows的容器执行此操作
转到Microsoft文档https://learn.microsoft.com/en-us/virtualization/windowscontainers/manage-containers/persistent-storage#smb-mounts。
在这里,您将发现有关如何在windows容器中将网络驱动器作为卷挂载的信息。
使用基于Linux的容器执行此操作。
目前(截至2019-11-13年)不可能。但是你可以使用一个插件:https://github.com/ContainX/docker-volume-netshare
我没有使用它,所以我对它没有经验。只是在我的研究中发现了它,并想把它作为一个潜在的解决方案。
推荐解决方案
在研究这个主题时,我觉得您应该从容器中安装驱动器。可以通过文件或参数传递所需的凭据。
作为文件的凭据示例
您需要在容器中安装包cifs-utils,添加
COPY ./.smbcredentials /.smbcredentials
到Dockerfile,然后在容器启动后运行以下命令:
sudo mount -t cifs -o file_mode=0600,dir_mode=0755,credentials=/.smbcredentials //192.168.1.XXX/share /mnt
潜在重复
关于这个主题还有另一个堆栈溢出线程:Docker add network drive as volume on windows
不过,这里提供的答案(https://stackoverflow.com/a/57510166/12338776)对我不起作用。
https://stackoverflow.com/questions/40049282
复制相似问题