我正在尝试从适用于Windows的Docker上的Docker容器中访问远程共享文件夹。
在运行dir \\target\share
的容器内部时,产生“找不到网络路径。”。可以从容器内部对目标执行ping操作,并可以从主机系统访问共享。
使用的图像是microsoft/dotnet-framework:4.7.2-sdk
,而我仅使用-it
选项进行测试。
要使它正常工作,我缺少什么?
答案 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