Docker鏡像加速配置失敗的排查和修復(fù)教學(xué)
問題現(xiàn)象
當按照常規(guī)教程配置Docker鏡像加速后,執(zhí)行 docker ps 出現(xiàn)以下報錯:
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?
即使 systemctl status docker 顯示服務(wù)正常運行,仍然無法使用Docker命令。
核心問題定位
1. 鏡像源配置異常
阿里云舊版加速地址失效(返回403錯誤)
鏡像地址格式錯誤(缺少協(xié)議頭或路徑)
2. 網(wǎng)絡(luò)通信阻斷
DNS解析失?。o法解析 registry-1.docker.io)
防火墻阻止Socket通信
3. 權(quán)限配置錯誤
/var/run/docker.sock 權(quán)限異常
用戶未加入docker組
4. 內(nèi)核參數(shù)沖突
bridge-nf-call-iptables 未啟用
終極解決方案
一、修復(fù)鏡像源配置
1.1 獲取有效鏡像地址
# 阿里云(需登錄控制臺獲取) https://<你的ID>.mirror.aliyuncs.com # 騰訊云 https://mirror.ccs.tencentyun.com # 中科大 https://docker.mirrors.ustc.edu.cn
1.2 重寫配置文件
sudo tee /etc/docker/daemon.json <<-'EOF' { "registry-mirrors": [ "https://docker.mirrors.ustc.edu.cn", "https://mirror.ccs.tencentyun.com", "https://hub-mirror.c.163.com" ], "max-concurrent-downloads": 10 } EOF
二、修復(fù)網(wǎng)絡(luò)連接
2.1 修改DNS配置
# 臨時生效 sudo echo "nameserver 223.5.5.5" > /etc/resolv.conf # 永久生效(CentOS) sudo nmcli connection modify eth0 ipv4.dns "223.5.5.5,119.29.29.29" sudo systemctl restart NetworkManager
2.2 開啟網(wǎng)絡(luò)轉(zhuǎn)發(fā)
sudo tee /etc/sysctl.d/docker.conf <<-'EOF' net.bridge.bridge-nf-call-iptables = 1 net.bridge.bridge-nf-call-ip6tables = 1 net.ipv4.ip_forward = 1 EOF sudo sysctl -p
三、修復(fù)權(quán)限問題
3.1 重建Socket文件
sudo systemctl stop docker docker.socket sudo rm -f /var/run/docker.sock sudo systemctl start docker
3.2 添加用戶到docker組
sudo usermod -aG docker $USER newgrp docker # 立即生效
四、完整重啟流程
sudo systemctl daemon-reload sudo systemctl restart containerd sudo systemctl restart docker sleep 10 # 等待服務(wù)初始化
效果驗證
1. 檢查服務(wù)狀態(tài)
systemctl is-active docker # 應(yīng)返回 active ls -l /var/run/docker.sock # 權(quán)限應(yīng)為 srw-rw----
2. 測試鏡像下載
# 使用CDN加速通道 docker pull dockerproxy.com/library/ubuntu:latest # 查看實際下載速度 docker pull ubuntu:latest 2>&1 | awk '/MB/ {print $7}'
3. 網(wǎng)絡(luò)規(guī)則檢查
iptables -t nat -L DOCKER # 應(yīng)有容器轉(zhuǎn)發(fā)規(guī)則
常見問題排查表
現(xiàn)象 | 診斷命令 | 解決方案 |
---|---|---|
鏡像下載慢 | docker info | grep Mirrors | 更換鏡像源順序 |
權(quán)限拒絕 | getfacl /var/run/docker.sock | 執(zhí)行 sudo chmod 666 /var/run/docker.sock |
無法解析域名 | dig registry-1.docker.io +short | 檢查配置文件格式 |
服務(wù)啟動失敗 | journalctl -u docker -n 50 | 檢查配置文件格式 |
預(yù)防措施
1.定期更新鏡像源
每季度訪問 鏡像源狀態(tài)監(jiān)控站 獲取最新推薦列表
2.使用配置校驗工具
# 檢查JSON格式 sudo python -m json.tool /etc/docker/daemon.json # 檢查生效配置 docker info | grep -A 15 "Docker Root Dir"
3.推薦組合配置
{ "registry-mirrors": [ "https://<阿里云ID>.mirror.aliyuncs.com", "https://dockerproxy.com" ], "dns": ["223.5.5.5", "8.8.8.8"], "log-driver": "json-file", "log-opts": {"max-size": "100m"} }
寫在最后
通過以上步驟,90%的Docker鏡像加速配置問題都能得到解決。如果仍然遇到問題,建議:
檢查系統(tǒng)時間是否準確:
date && sudo ntpdate cn.pool.ntp.org
嘗試清理Docker緩存:
docker system prune -af
使用 root 權(quán)限測試:
sudo -i docker ps
到此這篇關(guān)于Docker鏡像加速配置失敗的排查和修復(fù)教學(xué)的文章就介紹到這了,更多相關(guān)Docker鏡像加速配置失敗解決內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Idea通過docker compose?發(fā)布項目的過程
這篇文章主要介紹了Idea結(jié)合docker-compose發(fā)布項目,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-08-08Docker Desktop中安裝MySQL并開啟遠程訪問的詳細教程
本文主要介紹了在Docker Desktop中安裝MySQL并開啟遠程訪問,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-01-01Docker部署java項目的詳細步驟(利用Dockerfile方式)
docker可以利用簡單的編寫程序構(gòu)建出任何你想要的環(huán)境,同時可以跟業(yè)務(wù)代碼相結(jié)合,快速構(gòu)建和生成所需要的應(yīng)用,下面這篇文章主要給大家介紹了關(guān)于Docker部署java項目的詳細步驟,本文主要利用的是Dockerfile方式,需要的朋友可以參考下2022-08-08詳解在Docker容器內(nèi)外互相拷貝數(shù)據(jù)的方法
本篇文章主要介紹了詳解在Docker容器內(nèi)外互相拷貝數(shù)據(jù)的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下。2017-03-03docker容器狀態(tài)的轉(zhuǎn)換實現(xiàn)
這篇文章主要介紹了docker容器狀態(tài)的轉(zhuǎn)換實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-11-11