Docker Windows 使用代理

Docker on Windows with a proxy

您好,我在 windows 10 上使用代理 Docker。 Docker 本身在 docker 设置中正确设置的代理 IP 下工作正常。 我可以通过docker.

下载图片

问题是我想要 运行 或构建的任何容器也需要这些 HTTP_PROXY 和 HHTPS_PROXY 变量。 我可以通过将它添加到构建参数、运行 参数或 docker 文件中来做到这一点。 然而,这些解决方案中的 none 是完美的,因为它们将机器特定的变量值添加到 docker 文件 and/or docker-compose 文件中。

我已经通过以下技巧检查了 MobyLinuxVM 的这些 HTTP_PROXY 和 HHTPS_PROXY 变量的值: How to connect to docker VM (MobyLinux) from windows shell?

即使这些变量显示正确,我构建的 运行 或 docker 文件的任何图像仍然需要获取这些变量。

有没有办法让任何容器自动从已经设置了这些代理环境变量的 docker 守护进程那里获取这些代理环境变量? 我知道 Linux 天生具有此功能,但 Windows.

似乎缺少此功能

我的建议是使用一种工具将所有流量透明地路由到代理,而无需在本地设置任何代理配置。

对于 windows 有 proxifier。它将透明地将所有流量从您的主机路由到代理。

这不提供设置这些值或将它们置于容器上下文中的方法,但让我不必在每次更改 IP 地址时都更改我的代理设置,也让我不必将它们传递给运行 时间的容器(构建仍然是另一回事)。

这对我来说适用于 NTLM 身份验证网络代理,即使是在家中使用 VPN:

1) 获取Windows创建的DummyDesperatePoitras虚拟交换机Docker的IP地址(以169.254开头,通常是不可路由的IP)

2) 安装 CNTLM(不完美,因为它已经 5 年没有更新了)并将其设置为侦听 "dummy" IP 地址

3) 使用 "dummy" IP 地址作为 Docker 中的代理 Windows 设置

4) 将您的内部公司 DNS 服务器的 IP 和域名添加到 Docker 中的 daemon.json 以进行 Windows 设置

同样,这适用于 运行ning 容器 - 我只需要在 运行 docker 构建时处理代理服务器,并在构建参数中传递它。我还没有找到解决方法。

详细演练:https://mandie.net/2017/12/10/docker-for-windows-behind-a-corporate-web-proxy-tips-and-tricks/