天天看點

為 Docker 配置鏡像加速器(解決 TLS handshake timeout 問題)

問題

當我們下載下傳并安裝完 Docker Desktop for Windows,運作 Docker 快速入門(一)- 情況介紹和安裝 中的示例指令

docker run hello-world

時,可能會遇到如下的問題:

PS C:\Users\Rimland> docker --version
Docker version 19.03.8, build afacb8b

PS C:\Users\Rimland> docker run hello-world
Unable to find image 'hello-world:latest' locally
C:\Program Files\Docker\Docker\resources\bin\docker.exe: Error response from daemon: Get https://registry-1.docker.io/v2/library/hello-world/manifests/latest: net/http: TLS handshake timeout.
See 'C:\Program Files\Docker\Docker\resources\bin\docker.exe run --help'.
           
為 Docker 配置鏡像加速器(解決 TLS handshake timeout 問題)

原因

這是因為預設情況下 Docker 被配置為在 Docker Hub 上尋找鏡像,Docker Hub 是一個任何人都可以使用的公共系統資料庫,伺服器遠在海外,導緻請求逾時。

解決方案

配置鏡像加速器,以提升擷取 Docker 官方鏡像的速度。

鏡像加速器有很多,我們使用阿裡雲的加速器來設定,操作步驟如下:

  1. 打開阿裡雲 容器鏡像服務 ACR
  2. 點選“管理控制台”,登入阿裡雲賬号(如果沒有賬号,需先注冊一個)。
  3. 左側菜單導航到“鏡像中心” --> "鏡像加速器",可以看到加速器位址及操作文檔(有針對 Ubuntu、CentOS、Mac、Windows 各系統的操作文檔)。

針對安裝了 Docker Desktop for Windows 的使用者,可以參考以下配置步驟:

在系統右下角 Docker 托盤圖示右鍵彈出菜單選擇 Settings,打開配置視窗後左側導航菜單選擇 Docker Engine。編輯視窗内的JSON串,填寫下方加速器位址:

{
  "registry-mirrors": ["https://mkts104l.mirror.aliyuncs.com"]
}
           

如圖:

為 Docker 配置鏡像加速器(解決 TLS handshake timeout 問題)

編輯完成後點選

Apply & Restart

按鈕,等待 Docker 重新開機并應用配置的鏡像加速器。

再次運作指令

docker run hello-world

檢查,已經運作正常了:

為 Docker 配置鏡像加速器(解決 TLS handshake timeout 問題)

作者 : 技術譯民

出品 : 技術譯站

© 轉載請标明出處   https://www.cnblogs.com/ittranslator

不做标題黨,隻分享技術幹貨

公衆号『技術譯站』,

歡迎掃碼關注
為 Docker 配置鏡像加速器(解決 TLS handshake timeout 問題)