与代理的Windows上的Docker

你好即时通讯代理在Windows 10上使用Docker。 Docker本身正常工作,在Docker设置中正确设置了代理IP。 我可以通过docker下载图片。

问题是我想运行或构build的任何容器也需要这些HTTP_PROXY和HHTPS_PROXYvariables。 我可以通过添加它来构build参数,运行参数或者docker文件。 但是,这些解决scheme都不是完美的,因为它们将机器特定的variables值添加到泊坞窗文件和/或泊坞窗组合文件中。

我用这个技巧检查了这些HTTP_PROXY和HHTPS_PROXYvariables的MobyLinuxVM的值: 如何从windows shell连接到docker VM(MobyLinux)?

尽pipe这些variables显示正确,但我运行的任何图像或dockerfile仍然需要获取这些variables。

有没有一种方式,任何容器自动获得这些代理环境variables从已经有他们设置的dockerdeamon? 我知道Linux本质上有这个function,但是它似乎缺lessWindows。

我的build议是使用工具将所有stream量透明地路由到代理,而不必在本地设置任何代理configuration。

对于Windows有代理 。 它将透明地将您的主机的所有stream量路由到代理。

这不提供一种方法来设置这些值或将它们放在容器的上下文中,但是每当我更改IP地址时都不得不更改我的代理设置,并使我不必在运行时将它们传递给容器(构build仍然是一个不同的故事)。

这对我来说在NTLM身份validation的Web代理之后工作,甚至从VPN的家:

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

2)安装CNTLM(不完美,因为5年未更新),并将其设置为听取“虚拟”IP地址

3)在Docker for Windows设置中使用该“虚拟”IP地址作为代理

4)将您的企业内部DNS服务器的IP和域名添加到Docker for Windows设置中的daemon.json

同样,这适用于运行容器 – 我只需要在运行docker build的时候处理代理服务器,并在构build参数中传递它。 我还没有find解决办法。

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