代理後面的 Docker 需要在啟動時重新啟動
我正在嘗試在 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 無法使用代理。這一切都很好,我們有一個本地訪問的解決方法,但我需要使用自動建構/部署等遠端使用這台機器。因此,建構中斷而不執行該命令。我已經嘗試過的:
- 我在 /etc/systemd/system/docker.service.d 中創建了 http-proxy.conf 並在那里為代理創建了環境變數。
- 我試圖通過添加到
"DOCKER_OPTS"
頂部的變數來修改 docker service init.d 文件,-e "HTTP_PROXY=http://addressofproxy:portofproxy" -e "HTTPS_PROXY=http://addressofproxy:portofproxy"
但是,這也沒有任何區別,我仍然需要在重新啟動後重新啟動服務!- 我還設置/配置了客戶端配置
~/.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