問題
當我們下載並安裝完 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 被配置為在 Docker Hub 上尋找鏡像,Docker Hub 是一個任何人都可以使用的公共注冊表,服務器遠在海外,導致請求超時。
解決方案
配置鏡像加速器,以提升獲取 Docker 官方鏡像的速度。
鏡像加速器有很多,我們使用阿里雲的加速器來設置,操作步驟如下:
- 打開阿里雲 容器鏡像服務 ACR
- 點擊“管理控制台”,登錄阿里雲賬號(如果沒有賬號,需先注冊一個)。
- 左側菜單導航到“鏡像中心” --> "鏡像加速器",可以看到加速器地址及操作文檔(有針對 Ubuntu、CentOS、Mac、Windows 各系統的操作文檔)。
針對安裝了 Docker Desktop for Windows 的用戶,可以參考以下配置步驟:
在系統右下角 Docker 托盤圖標右鍵彈出菜單選擇 Settings,打開配置窗口后左側導航菜單選擇 Docker Engine。編輯窗口內的JSON串,填寫下方加速器地址:
{
"registry-mirrors": ["https://mkts104l.mirror.aliyuncs.com"]
}
如圖:
編輯完成后點擊 Apply & Restart
按鈕,等待 Docker 重啟並應用配置的鏡像加速器。
再次運行命令 docker run hello-world
檢查,已經運行正常了:
作者 : 技術譯民
出品 : 技術譯站