文章目錄
- 關于Docker拉取鏡像超時/無法訪問鏡像倉庫解決方案
- 卸載原先安裝的Docker及相關配置
- 使用代理后無法拉取鏡像解決方案
- 驗證代理連通性
- 安裝 Docker 最新版
- 配置 Docker Daemon HTTP 代理
- 重啟驗證與拉取鏡像
- 不使用代理解決方案
- 安裝 Docker 最新版
- 配置阿里云容器鏡像加速
關于Docker拉取鏡像超時/無法訪問鏡像倉庫解決方案
我今天安裝Docker后無論是配置阿里云鏡像源或是按照網上以及ai說的配置dns、防火墻、關閉ipv6等方法都無法成功拉取鏡像
進行docker login、通過curl命令訪問docker鏡像倉庫也是一律超時或拒絕訪問,在我搗鼓了一個下午后終于成功找到解決方法。下面我將針對使用代理
的用戶以及不使用代理
的用戶分別給出解決方案
卸載原先安裝的Docker及相關配置
# 1. 停止所有Docker容器和守護進程
sudo systemctl stop docker.socket docker.service containerd
sudo pkill -f docker# 2. 卸載Docker軟件包
sudo apt purge -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin# 3. 刪除殘留數據和配置
sudo rm -rf /var/lib/docker
sudo rm -rf /var/lib/containerd
sudo rm -rf /etc/docker
sudo rm -rf /etc/apt/sources.list.d/docker*.list# 4. 刪除代理配置文件(之前配置的)
sudo rm -rf /etc/systemd/system/docker.service.d/http-proxy.conf
sudo systemctl daemon-reload# 5. 清理APT緩存
sudo apt autoremove -y
sudo apt clean
使用代理后無法拉取鏡像解決方案
驗證代理連通性
curl -I -x http://127.0.0.1:7890 https://hub.docker.com # 通過代理測試能否訪問 Docker Hub
如果能返回 HTTP 200/301 等響應,則表示代理連通正常。若以上命令失敗,可嘗試先導出環境變量后再測試:
export http_proxy="http://127.0.0.1:7890" # 使用環境變量中的代理訪問,注意改成自己的!!!
curl -I https://hub.docker.com
安裝 Docker 最新版
sudo apt-get remove -y docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc # 卸載舊版 Docker 及沖突軟件
sudo apt-get update # 更新軟件包索引
sudo apt-get install -y ca-certificates curl gnupg lsb-release # 安裝必要工具# 添加 Docker 官方 GPG 密鑰并新建 Apt 倉庫 keyrings 目錄
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.asc # 獲取 Docker GPG 密鑰
sudo chmod a+r /etc/apt/keyrings/docker.asc# 添加 Docker 官方 apt 軟件源(Ubuntu 24.04 代號為 noble)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \| sudo tee /etc/apt/sources.list.d/docker.list sudo apt-get update # 更新倉庫索引
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 安裝 Docker 引擎及相關組件
配置 Docker Daemon HTTP 代理
注意下方將代理地址全都改為自己的,我這里使用的是http://127.0.0.1:7890
sudo mkdir -p /etc/systemd/system/docker.service.d # 創建 docker.service 的 drop-in 目錄
# 編輯 /etc/systemd/system/docker.service.d/http-proxy.conf,添加以下內容:
sudo tee /etc/systemd/system/docker.service.d/http-proxy.conf <<EOF
[Service]
Environment="HTTP_PROXY=http://127.0.0.1:7890"
Environment="HTTPS_PROXY=http://127.0.0.1:7890"
Environment="NO_PROXY=localhost,127.0.0.1"
EOF
上述配置將 Docker 守護進程的 HTTP/HTTPS 代理都指向 127.0.0.1:7890
,并在 NO_PROXY 中排除本地地址??
。保存后執行以下命令使配置生效
sudo systemctl daemon-reload # 重新加載 systemd
sudo systemctl restart docker # 重啟 Docker
重啟后,可用下面命令查看代理環境變量是否已被加載:
sudo systemctl show --property=Environment docker # 查看 Docker 服務的環境變量
若輸出中包含類似 HTTP_PROXY=http://127.0.0.1:7890
字樣,則表示代理配置已生效
重啟驗證與拉取鏡像
sudo docker run hello-world # 運行官方測試鏡像確認安裝成功
成功啦!!!
不使用代理解決方案
安裝 Docker 最新版
sudo apt-get remove -y docker.io docker-compose docker-compose-v2 docker-doc podman-docker containerd runc # 卸載舊版 Docker 及沖突軟件
sudo apt-get update # 更新軟件包索引
sudo apt-get install -y ca-certificates curl gnupg lsb-release # 安裝必要工具# 添加 Docker 官方 GPG 密鑰并新建 Apt 倉庫 keyrings 目錄
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo tee /etc/apt/keyrings/docker.asc # 獲取 Docker GPG 密鑰
sudo chmod a+r /etc/apt/keyrings/docker.asc# 添加 Docker 官方 apt 軟件源(Ubuntu 24.04 代號為 noble)
echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] \
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" \| sudo tee /etc/apt/sources.list.d/docker.list sudo apt-get update # 更新倉庫索引
sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin # 安裝 Docker 引擎及相關組件
配置阿里云容器鏡像加速
從
阿里云容器鏡像服務控制臺
獲取專屬加速地址
阿里云鏡像連接:https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
復制下方命令在命令行輸入
ll /etc/docker
出現這行即配置完成