如何配置docker容器代理?
首先,
我尝试使用设置"/etc/systemd/system/docker.service.d/http-proxy.conf"的方式(https://docs.docker.com/config/daemon/systemd/#httphttps-proxy),它确实适用于docker守护进程,但它不适用于dockercontainers,它似乎只对一些命令生效,比如"dockerpull">
次要,
我有很多docker容器,我不想使用"docker run-e http_proxy=xxx…"命令。
所以我想,如果有这样一种方法可以在容器启动时自动加载全局配置文件,我在谷歌上搜索了它,并让它设置文件"~/.docker/config.json"(如何配置docker容器代理?,这种方法仍然不适用于我。
(我的主机系统是centos7,这是我的docker-v:Docker版本1.13.1,构建6e3bb8e/1.13.1)
我觉得这可能与我的docker版本或systemd服务启动的docker有关,所以~/.docker/config.json不起作用。
最后,
我只是希望修改配置文件将允许我的所有容器在启动时自动配置环境变量(即自动设置环境变量的http_proxy=http://HostIP:8118https_proxy=http://HostIP:8118'当容器启动时,如Dockerfile param ENV)。我想知道是否有这样的方法?如果可以实现这种方式,我可以让容器使用主机的代理,毕竟,我的主机代理工作正常。
但我错了,我试着运行一个容器,然后设置http_proxy=http://HostIP:8118和https_proxy=http://HostIP:8118,但当我使用命令"wget facebook.com"时,我得到了"连接到主机IP:8118…失败:没有到主机的路由。",但是,主机(centos7)可以成功地执行wget,并且我可以成功地ping容器中的主机。我不知道为什么它可能与防火墙和8118端口有关。
结束了,
OMG。。我别无选择,有人能帮我吗?
====================================
ps:你可以从下面的屏幕截图中看到,我实际上想安装goa和goagen,但报告了一个错误,可能是因为网络原因,我想打开代理尝试,所以…只有上面的问题。
1.我的码头集装箱在此处输入图像描述
去码头工人wget
2.我的主机
我的主机wget
您需要17.07或更高版本才能自动将代理传递到开始使用config.json文件的容器。1.13版本长期得不到支持。
docker对此有充分的记录:https://docs.docker.com/network/proxy/