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
。
因为我在中国,如果没有 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
。