Docker容器,如何使用主机代理

HMR*_*HMR 7 proxy docker

因为我在中国,几乎不可能在没有 VPN 的情况下使用 Docker Hub、Git、GitHub、npm 和大量其他工具。

终于找到了如何让Docker daemon使用代理(主机上VPN客户端软件中的share VPN就是代理服务器)。

但是一旦我运行容器,我就会再次位于防火墙后面,并且容器没有使用主机代理。这将使从 GitHub 获取任何东西、使用 npm、Bower 和许多其他东西变得不可能。

如何强制容器使用主机代理?

Cod*_*key 6

如果您不想--network=host将 Docker 与主机网络隔离,则需要使主机网络在 Docker 内可用。

运行 docker 时使用:(Linux,Docker 版本 > 20.10)

--add-host=host.docker.internal:host-gateway

假设您的代理正在端口上运行3128,您需要在 docker 容器内设置

http_proxy=http://host.docker.internal:3128

如果您正在使用代理,请确保您进行了设置Gateway yes/etc/cntlm.conf


pre*_*rem 0

我通过在 中设置代理来修复它/etc/default/docker

我还必须在环境变量中取消设置代理:

unset http_proxy
unset https_proxy
Run Code Online (Sandbox Code Playgroud)

  • 我发现 172.17.42.1 指向主机,因此将代理设置为 http://172.17.42.1:8080 并在我的主机上正确设置防火墙可以解决此问题。 (2认同)