Stories

Detail Return Return

如何在docker被屏蔽的情況下,在debian上安裝docker engine - Stories Detail

最後docker因於不知道的某些原因被屏蔽了,這使得我們無論在拉取官方鏡像方面還是在進行安裝方面都需要一點點技巧。

既然docker不能夠直接訪問,所以如果想安裝docker engine成功的前提是:有個可以連通外網的代理。在本文中,假設代理的地址為:http://192.168.20.3:7890。同時,由於我們參考官方的文檔來進行安裝,所以我們還需要一台可以在瀏覽器中打開docker官方的計算機。

在滿足了網絡環境後,安裝步驟如下:

打開官網

截止到本文發佈,在debian中安裝docker的官方地址為:https://docs.docker.com/engine/install/debian/ ,如果我們是全新的主機,則只需要參考以下3步即可。

image.png

image.png

接下來,我們按上述官網指引進行安裝:

安裝通用包

首先按指導安裝通用包:

sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings

添加官方GPG key

此時官方的指引為:sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc

在這我們先為curl設置個代理,該上述命令修改為:

sudo curl -fsSL -x http://192.168.20.3:7890 https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc

最後執行指引中的如下命令來修改下載文件的權限:

sudo chmod a+r /etc/apt/keyrings/docker.asc

添加倉庫地址

同樣按官方指引將docker的倉庫地址添加到debain中:

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/debian \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

然後在執行更新操作時,將sudo apt-get update修改為:

sudo apt-get -o Acquire::http::Proxy="http://192.168.20.3:7890" update

需要注意的,此時在進行倉庫時,默認將使用ipv6網絡,如果我們當前環境不支持ipv6,則需要執行:

sudo apt-get -o Acquire::ForceIPv4=true -o Acquire::http::Proxy="http://192.168.20.3:7890" update

即在原來的基礎上加入Acquire::ForceIPv4=true以強制其走ipv4。

安裝docker

在進行docker安裝時,由於需要下載docker官方提供的文件,所以也需要代理,在官方指引:sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin的基礎上,加入代理設置:

sudo apt-get -o Acquire::http::Proxy="http://192.168.20.3:7890" install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin

設置docker代理

安裝完成後,繼續設置docker的代理,以使其能夠在執行docker pull時成功獲取到官方倉庫:

sudo mkdir -p /etc/systemd/system/docker.service.d
sudo nano /etc/systemd/system/docker.service.d/http-proxy.conf

然後加入以下配置:

[Service]
Environment="HTTP_PROXY=http://192.168.20.3:7890/"
Environment="HTTPS_PROXY=http://192.168.20.3:7890/"
Environment="NO_PROXY=localhost,127.0.0.1"

最後重啓docker

sudo systemctl daemon-reload
sudo systemctl restart docker

驗證

使用官方指引進行驗證:

sudo docker run hello-world

正確的拉取鏡像後成功創建容器並顯示了 Hello from Docker!

Good Luck!

參考:

  1. Install Docker Engine on Debian
  2. 解決阿里雲ECS服務器拉取不下鏡像的問題
  3. chatGPT

Add a new Comments

Some HTML is okay.