很抱歉,如果我将其张贴在错误的部分,我需要一些帮助并且不确定该去哪里。
我正在尝试在Linux / ubuntu服务器计算机上的代理后面运行docker。我已经配置了盒子上的每个代理(FTP / HTTPS / HTTP),还配置了这里提到的Docker代理:https://docs.docker.com/config/daemon/systemd/#httphttps-proxy和https://stackoverflow.com/a/28093517/4261713
但是,我将docker服务设置为在计算机启动时自动启动,除非我登录计算机并运行sudo service docker restart
,否则这些设置将被忽略,并且docker无法使用代理。一切都很好,我们可以解决本地访问的问题,但是我需要通过自动构建/部署等远程使用此机器。因此,构建会中断而无需运行该命令。
不幸的是,我无法从Docker支持中获得任何帮助,我已经等待了大约3周时间,他们没有运气就回复了。这个问题很可能是我不了解linux服务/守护程序。有人可以帮我吗?
确认我已经尝试过:
我已经在/etc/systemd/system/docker.service.d中创建了http-proxy.conf并在那里为代理创建了Environment变量。
我尝试通过使用"DOCKER_OPTS"
添加到顶部的-e "HTTP_PROXY=http://addressofproxy:portofproxy" -e "HTTPS_PROXY=http://addressofproxy:portofproxy"
变量来修改docker服务init.d文件,但是,这也没有什么区别,我仍然需要重新启动后重新启动服务!
编辑:我还设置/配置了~/.docker/config.json
中的客户端配置,以使用代理。(如Kerat在下面的答案中所述)
我们非常感谢您的协助,我完全无法理解为什么它在启动时不会读取选项。
答案 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服务器的一种较差的方法,我希望它没有安装任何普通的原始操作系统。希望将来对其他人有所帮助!