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

Docker container, how to use host proxy

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

我终于找到了Docker守护进程use a proxy(在主机上的VPN客户端软件中共享VPN是代理服务器)。

但是一旦我 运行 容器,我又在防火墙后面了,并且容器没有使用主机代理。这将使无法从 GitHub、使用 npm、Bower 和许多其他东西获得任何东西。

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

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

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

unset http_proxy
unset https_proxy

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

当运行 docker 使用:(Linux, Docker version > 20.10)

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

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

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

另外,如果您使用的是代理,请确保在 /etc/cntlm.conf 中设置了 Gateway yes