如何配置 docker 容器代理?

how to configure docker containers proxy?

如何配置 docker 容器代理?

首先,

我尝试使用设置 '/etc/systemd/system/docker.service.d/http-proxy.conf' (https://docs.docker.com/config/daemon/systemd/#httphttps-proxy) 的方式,它确实适用于 docker 守护程序,但是它不适用于 docker 容器,似乎这种方式只对 'docker pull'

这样的命令生效

中学,

我有很多 docker 个容器,我不想每次启动容器时都使用 'docker run -e http_proxy=xxx... ' 命令。

所以我猜有没有这种方法在容器启动时自动加载全局配置文件,我google了一下,得到了设置文件'~/.docker/config.json '(,这种方式对我还是不行

( 我的主机系统是centos7,这里是我的docker -v: Docker 版本 1.13.1,构建 6e3bb8e/1.13.1 )

感觉可能和我的docker版本或者systemd服务启动的docker有关,所以~/.docker/config.json没有生效。

最后,

我只是希望修改配置文件可以让我所有的容器在启动时自动配置环境变量(即在容器启动时自动设置环境变量'http_proxy=http://HostIP:8118 https_proxy=http://HostIP:8118',如Dockerfile param环境)。我想知道有没有这样的方法?而如果这种方式能够实现我可以让容器使用宿主机的代理,毕竟我宿主机的代理是正常的。

但我错了,我尝试运行一个容器,然后设置http_proxy=http://HostIP:8118 and https_proxy=http://HostIP:8118,但是当我使用命令'wget facebook.com'时,我得到了'Connecting to HostIP:8118... failed: No route to host.', 但是,主机(centos7)可以成功执行wget,并且我可以成功ping通容器中的主机。不知道为什么可能跟防火墙和8118端口有关

结束了,

天哪..我没有别的办法,谁能帮帮我?

================================

ps: 从下面的截图可以看出,我其实是想安装goa和goagen但是报错,可能是网络原因,想打开代理试试,所以...只有上面的问题。

1.my转到docker容器 enter image description here

go docker wget

2.my主机

my host wget

您需要 17.07 或更高版本才能自动将代理传递给您开始使用 config.json 文件的容器。 1.13 版本早已不受支持。

这在 docker 中有详细记录: https://docs.docker.com/network/proxy/