如何配置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 ...'命令。
所以我猜是否有一种方法可以在容器启动时自动加载全局配置文件,我用谷歌搜索并设置了文件'〜/ .docker / config.json'(How to configure docker container proxy?,这种方式对我仍然不起作用。
( 我的主机系统是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参数ENV)。我想知道是否有这种方法吗?如果可以实现这种方式,那么我可以使容器使用主机的代理,毕竟,主机的代理可以正常工作。
但是我错了,我试图运行一个容器,然后设置http_proxy = http://HostIP:8118和https_proxy = http://HostIP:8118,但是当我使用命令“ wget facebook.com”时,我得到了“连接中到HostIP:8118 ...失败:没有通往主机的路由。',但是,主机(centos7)可以成功执行wget,而且我可以成功ping通容器中的主机。我不知道为什么它可能与防火墙和8118端口有关。
结束了,
OMG ..我别无选择,有人可以帮助我吗?
=============================
ps: 您可以从下面的屏幕快照中看到,我实际上是想安装goa和goagen,但报告错误,可能是由于网络原因,我想打开代理进行尝试,所以...只有上面的问题。
1.my go docker容器 enter image description here
2.my主机
答案 0 :(得分:0)
您需要版本17.07或更高版本,才能将代理自动传递给使用config.json文件开始的容器。 1.13版本早已不受支持。
这在docker中有据可查: https://docs.docker.com/network/proxy/