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