代理后面的Docker需要在启动时重启

时间:2019-02-25 11:11:15

标签: linux docker proxy

很抱歉,如果我将其张贴在错误的部分,我需要一些帮助并且不确定该去哪里。

我正在尝试在Linux / ubuntu服务器计算机上的代理后面运行docker。我已经配置了盒子上的每个代理(FTP / HTTPS / HTTP),还配置了这里提到的Docker代理:https://docs.docker.com/config/daemon/systemd/#httphttps-proxyhttps://stackoverflow.com/a/28093517/4261713

但是,我将docker服务设置为在计算机启动时自动启动,除非我登录计算机并运行sudo service docker restart,否则这些设置将被忽略,并且docker无法使用代理。一切都很好,我们可以解决本地访问的问题,但是我需要通过自动构建/部署等远程使用此机器。因此,构建会中断而无需运行该命令。

不幸的是,我无法从Docker支持中获得任何帮助,我已经等待了大约3周时间,他们没有运气就回复了。这个问题很可能是我不了解linux服务/守护程序。有人可以帮我吗?

确认我已经尝试过:

  1. 我已经在/etc/systemd/system/docker.service.d中创建了http-proxy.conf并在那里为代理创建了Environment变量。

  2. 我尝试通过使用"DOCKER_OPTS"添加到顶部的-e "HTTP_PROXY=http://addressofproxy:portofproxy" -e "HTTPS_PROXY=http://addressofproxy:portofproxy"变量来修改docker服务init.d文件,但是,这也没有什么区别,我仍然需要重新启动后重新启动服务!

  3. 编辑:我还设置/配置了~/.docker/config.json中的客户端配置,以使用代理。(如Kerat在下面的答案中所述)

我们非常感谢您的协助,我完全无法理解为什么它在启动时不会读取选项。

2 个答案:

答案 0 :(得分:0)

您是否尝试过在~/.docker/config.json中使用以下命令配置代理:

{
 "proxies":
 {
   "default":
   {
     "httpProxy": "http://127.0.0.1:3001",
     "httpsProxy": "http://127.0.0.1:3001",
     "noProxy": "*.test.example.com,.example2.com"
   }
 }
}

https://docs.docker.com/network/proxy/#configure-the-docker-client所述?

答案 1 :(得分:0)

这证明是双重实例安装。令人困惑的ubuntu服务器在软件包管理器-snap下安装了docker,因此在apt-get下安装会导致重复安装。

我认为这是管理Ubuntu服务器的一种较差的方法,我希望它没有安装任何普通的原始操作系统。希望将来对其他人有所帮助!