Ubuntu

代理後面的 Docker 需要在啟動時重新啟動

  • July 2, 2019

我正在嘗試在 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 無法使用代理。這一切都很好,我們有一個本地訪問的解決方法,但我需要使用自動建構/部署等遠端使用這台機器。因此,建構中斷而不執行該命令。

我已經嘗試過的:

  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

我們剛剛發現並解決了這個問題。事實證明,在 18.04 Ubuntu 伺服器中,使用了“Snap”包管理器。它還預設安裝了 docker。

問題是重複安裝,即 snap 安裝了 docker,然後我通過 apt 包管理器安裝了 docker。刪除 snap docker install 後,重新啟動時一切正常。

愚蠢的問題,但希望這將在未來對其他人有所幫助!

我有一組由 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 

引用自:https://unix.stackexchange.com/questions/504506