Docker与共享Windows文件夹

时间:2018-09-20 14:06:34

标签: docker smb docker-for-windows

我正在尝试从适用于Windows的Docker上的Docker容器中访问远程共享文件夹。

在运行dir \\target\share的容器内部时,产生“找不到网络路径。”。可以从容器内部对目标执行ping操作,并可以从主机系统访问共享。

使用的图像是microsoft/dotnet-framework:4.7.2-sdk,而我仅使用-it选项进行测试。

要使它正常工作,我缺少什么?

2 个答案:

答案 0 :(得分:3)

SMB协议适用于同一LAN中的主机。 Docker容器默认情况下在NAT后面具有虚拟网络接口,因此该容器不再位于同一LAN中。这就是为什么您可以ping通目标但无法访问共享文件夹的原因。

更简单的解决方案是将选项--network host添加到docker run命令中。 这样,容器可以访问与主机相同的网络接口,并且不会创建虚拟接口。

答案 1 :(得分:1)

您可以使用docker volumes在容器中安装文件夹/网络共享

在主机上创建docker卷:

$ docker volume create --driver local \
    --opt type=nfs \
    --opt o=addr=192.168.1.1,rw \
    --opt device=:/path/to/dir \
    foo

安装容器上的体积:

$ docker run -d \
  --name devtest \
  --mount source=foo,target=/app \
  nginx:latest

更多示例here