windows 10上的docker can';启用VPN时不装载卷
在Windows 10上运行docker时,我发现装载本地卷时出现问题。这些问题只有在我启用公司VPN时才会出现windows 10上的docker can';启用VPN时不装载卷,docker,networking,windows-10,vpn,Docker,Networking,Windows 10,Vpn,在Windows 10上运行docker时,我发现装载本地卷时出现问题。这些问题只有在我启用公司VPN时才会出现 C:\Users\matt> docker run --rm -v d:/tmp:/data alpine ls /data my_local_test_file.txt 当连接到VPN时,我得到以下信息: C:\Users\matt> docker run --rm -v d:/tmp:/data alpine ls /data C:\Program Files\Do
C:\Users\matt> docker run --rm -v d:/tmp:/data alpine ls /data
my_local_test_file.txt
当连接到VPN时,我得到以下信息:
C:\Users\matt> docker run --rm -v d:/tmp:/data alpine ls /data
C:\Program Files\Docker\Docker\Resources\bin\docker.exe: Error response from daemon: error while creating mount source path '/host_mnt/d/tmp': mkdir /host_mnt/d: file exists.
Docker版本为17.12.0-ce-win47
我认为问题在于docker在安装本地卷时使用网络,VPN通过VPN网关路由所有网络流量,因此docker看不到本地驱动器
有解决办法吗
我知道我可以在linux虚拟机中运行docker,或者使用docker工具箱。这两个都不是特别好
还有其他可能的解决办法吗
VPN通过VPN网关路由所有网络流量
您可能是对的,在这种情况下,从Docker客户端路由到Docker守护进程的所有流量也将通过VPN。在Windows上使用Docker CLI时,它将连接到可通过网络访问的Docker守护程序。使用VPN可能会破坏此机制
我认为现在发生的是:
- 当VPN被禁用时,您在您的机器上使用Docker守护进程,一切正常
- 启用VPN时,会使用另一个Docker守护程序,因为VPN会将通信重定向到Docker主机(
默认情况下或通过设置)。这意味着这个IP或主机存在于您的VPN网络上,并且有一个Docker守护进程在监听它(这有点奇怪,不可否认,使用该守护进程可能有风险)127.0.0.1
docker ps-a
、docker image
等的不同输出,因为您正在连接到不同的守护进程。(通过您的VPN访问的守护进程实际上是由其他人拥有的,您最好不要使用它!)
您可以做什么:
不要通过VPN路由127.0.0.1(或配置为Docker主机的任何内容)
要采取的操作将取决于您使用的VPN软件,或者您可以直接在windows计算机上添加路由(关于主题)
在启用VPN时查找您的IP,并将守护进程配置为侦听此IP
- 启用VPN后,运行
,查找VPN使用的接口及其IP地址,例如ipconfig/all
(您可以比较启用VPN之前/之后的输出以确定它是哪一个)10.142.0.12
- 配置Docker守护进程以侦听此IP地址并重新启动它。默认情况下,或者在Windows配置文件位于
上,您需要指定%programdata%\docker\config\daemon.json
,例如()“主机”:[“10.142.0.12”,“127.0.0.1”]
- 启用VPN时,通过设置环境变量
或使用客户端Docker\u host=10.142.0.12
将Docker主机配置为Docker-H 10.142.0.12
10.142.0.12
希望这有帮助。我不是Windows专家,因此无法提供有关Windows相关问题的详细信息,但如果需要,请随时询问详细信息