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

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

我正在尝试在 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 无法使用代理。这一切都很好,我们有一个本地访问的解决方法,但我需要使用自动构建/部署等远程使用这台机器。因此,构建会在不运行该命令的情况下中断。

我已经尝试过的:

  1. 我在 /etc/systemd/system/docker.service.d 中创建了 http-proxy.conf 并为代理创建了环境变量。

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

  3. 我还设置/配置了客户端配置~/.docker/config.json以包含代理。

安装

Docker 是使用sudo apt-get install docker.io命令行安装的,它不是从源代码构建的。

主机和版本信息:

Ubuntu 版本 ( lsb_release -a)

No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:        18.04
Codename:       bionic 

Docker版本 ( docker --version)

Docker version 18.06.1-ce, build e68fc7a

安装的包 ( sudo apt list --installed | grep docker):

docker.io/bionic-updates,bionic-security,now 18.06.1-0ubuntu1.2~18.04.1 amd64

答案1

我有一组由 docker-compose yaml 文件控制的 docker 容器,类似于下面的内容

version: '3'
services:

  nodejs-admin:
    image: ${GKE_APP_IMAGE_ADMIN}
    hostname: admin
    container_name: loud_admin
    restart: always
    ... more tags go here

在上面我列出了重新启动时需要启动的所有容器...注意上面的标签

restart: always

它告诉 docker 在机器重新启动时重新启动这些容器...以解决所有容器问题

docker-compose  -f /somepath/docker-compose.yml down

启动容器问题

docker-compose  -f /somepath/docker-compose.yml pull imageA  imageB  

docker-compose  -f /somepath/docker-compose.yml up -d 

答案2

我们现在才发现并解决了这个问题。事实证明,在 18.04 Ubuntu 服务器中,使用了“Snap”包管理器。它还默认安装了 docker。

问题是重复安装,即 snap 安装了 docker,然后我通过 apt 包管理器安装了 docker。一旦删除了 snap docker 安装,所有内容在重新启动时都会按预期工作。

愚蠢的问题,但希望这能帮助将来的其他人!

相关内容