在使用 Docker 的過程中,經常會遇到鏡像拉取超時的問題,尤其是在國內網絡環境下。這不僅會浪費大量的時間,還可能導致一些項目無法順利進行。今天,我將分享一個簡單而有效的解決方法:配置國內鏡像源。
環境 操作系統 centos 7.9
問題描述
最近在使用 Docker 拉取鏡像時,遇到了一個令人頭疼的問題。控制臺提示如下錯誤:
plugin_daemon Error Get "https://registry-1.docker.io/v2/": net/http: request canceled while waiting for connection (Client.Timeout exceeded while awaiting headers)
從錯誤信息可以看出,這是由于 Docker 客戶端在等待連接時超時了。這通常是由于網絡問題導致的,尤其是在國內網絡環境下,訪問 Docker Hub 的速度可能會非常慢。
解決方案
為了解決這個問題,我們可以配置國內的 Docker 鏡像源。以下是一個詳細的步驟指南:
1. 備份原始配置文件
在進行任何修改之前,建議先備份原始的配置文件。這樣,如果出現問題,我們可以隨時恢復到原始狀態。
cp /etc/docker/daemon.json{,.bak}
2. 修改或刪除原始配置文件
根據你的需求,可以選擇修改或刪除原始的 daemon.json 文件。這里以刪除為例:
rm -rf /etc/docker/daemon.json
然后,添加新的配置文件,配置國內的鏡像源。這里推薦使用毫秒鏡像(https://docker.1ms.run)和一面板鏡像(https://docker.1panel.live/):
sudo tee /etc/docker/daemon.json <<-'EOF'
{"registry-mirrors": ["https://docker.1ms.run","https://docker.1panel.live/"]
}
EOF
3. 重新加載配置文件并重啟 Docker
完成配置后,需要重新加載配置文件并重啟 Docker 服務,使配置生效:
sudo systemctl daemon-reload
sudo systemctl restart docker
4. 測試鏡像拉取
最后,再次嘗試拉取鏡像,檢查問題是否解決。如果一切正常,你應該能夠快速拉取到所需的鏡像。
鏡像源推薦
以下是兩個推薦的國內鏡像源:
毫秒鏡像
網址:https://docker.1ms.run
特點:速度快,穩定性高,適合大多數用戶。
一面板鏡像
網址:https://docker.1panel.live/
特點:專為國內用戶優化,支持多種鏡像。