在Windows 10上将网络文件夹挂载到Docker容器

Sam*_*Sam 20 windows docker

我正在尝试使用以下语法在Windows 10上安装带有Docker容器的网络文件夹.使用UNC路径不起作用.我在Hyper-V和Docker的稳定版本下运行它.

docker run -v \\some\windows\network\path:/some/local/container
Run Code Online (Sandbox Code Playgroud)

在我使用Docker Toolbox之前,我可以使用VirtualBox将网络共享映射到内部文件夹.我已尝试将网络共享添加为驱动器,但它不会显示为设置面板下的可用驱动器.

目前我正在使用mklink将本地文件夹镜像到网络文件夹,但我不想依赖于此作为解决方案.

the*_*off 6

使用基于 Windows 的容器执行此操作

转到 Microsoft 文档https://docs.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


可能重复

这里有另一个关于这个主题的 stackoverflow 线程: Docker add network drive as volume on windows

那里提供的答案(/sf/answers/4025711651/)虽然对我不起作用。

  • 您能否将您的答案调整为更加详细和具体,以说明如何回答问题,而不是简单地链接到其他来源。谢谢 (2认同)