gpt4 book ai didi

启用 VPN 后,Windows 10 上的 docker 无法挂载卷

转载 作者:行者123 更新时间:2023-12-02 18:20:13 30 4
gpt4 key购买 nike

我在 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\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 VM 中运行 docker,或者使用 docker 工具箱。这些都不是特别好。

还有其他可能的解决方法吗?

最佳答案

the VPN routes ALL network traffic via the VPN gateway

您可能是对的,在这种情况下,从 Docker 客户端路由到 Docker 守护进程的所有流量也将通过 VPN。当您在 Windows 上使用 Docker CLI 时,它将连接到可通过网络访问的 Docker 守护进程。使用 VPN 可能会破坏此机制。

我认为发生的事情是:

  • 禁用 VPN 后,您可以在计算机上使用 Docker 守护进程,一切正常
  • 启用 VPN 后,将使用另一个 Docker 守护程序,因为您的 VPN 会将流量重定向到您的 Docker 主机(默认情况下为 127.0.0.1 或通过 -H flag or DOCKER_HOST env variable 设置)。这意味着这个 IP 或主机以某种方式存在于您的 VPN 网络上,并且有一个 Docker 守护进程在监听它(不可否认,这有点奇怪,使用该守护进程可能会有风险)

如果这真的发生了,您肯定会看到 docker ps -a 的不同输出, docker images等,因为您正在连接到不同的守护进程。 (通过你的VPN访问的守护进程实际上是别人所有的,你最好不要使用它!)

你可以做什么:

不要通过您的 VPN 路由 127.0.0.1(或配置为 Docker 主机的任何内容)

要采取的操作将取决于您使用的 VPN 软件,或者您可以直接在 Windows 计算机上添加路由(here is a good article 关于主题)

启用 VPN 时找出您的 IP 并配置守护程序以监听此 IP

  • 启用 VPN 后,运行 ipconfig /all并找到您的 VPN 使用的接口(interface)及其 IP 地址,例如 10.142.0.12 (您可以比较启用 VPN 之前/之后的输出以识别它是哪个)
  • 配置您的 Docker 守护程序以监听此 IP 地址并重新启动它。 use the UI ,或在 Windows 配置文件位于 %programdata%\docker\config\daemon.json默认情况下,您需要指定 "hosts": ["10.142.0.12", "127.0.0.1"]例如 ( see docs for details )
  • 将 Docker 主机配置为 10.142.0.12启用 VPN 时,通过设置环境变量 DOCKER_HOST=10.142.0.12或与客户 docker -H 10.142.0.12 <cmd>

/!\安全说明:这可能会带来安全问题,因为任何知道您在 VPN 网络上的 IP 的人都可以在您的机器上使用守护进程


希望这对您有所帮助。我不是 Windows 专家,因此无法提供有关 Windows 相关问题的详细信息,但如有需要,请随时询问详细信息。

关于启用 VPN 后,Windows 10 上的 docker 无法挂载卷,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54907381/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com