Docker在CentOS中的故障排查指南
使用systemctl status docker.service命令確認Docker服務是否正在運行。若未啟動,可通過systemctl start docker.service啟動服務;若啟動失敗,需結合日志進一步分析。
服務啟動失敗時,日志是定位問題的核心??墒褂?code>journalctl -u docker.service(實時日志)或tail -f /var/log/docker.log(歷史日志)查看錯誤信息,如依賴缺失、配置錯誤等。
通過docker version命令檢查Docker是否安裝成功及版本兼容性(需符合CentOS系統支持要求)。若未安裝,需按照官方文檔執行sudo yum install docker安裝。
若遇到緩存異常(如鏡像拉取失敗、容器啟動報錯),可停止Docker服務并刪除緩存目錄:sudo systemctl stop docker.service && sudo rm -rf /var/lib/docker/*,隨后重啟服務。
systemctl start docker即可;若仍無法連接,檢查/var/run/docker.sock是否存在,若不存在則刪除后重啟服務。journalctl -u docker.service查看具體錯誤,如“Failed to start Docker Application Container Engine”。-v掛載目錄時出現“Permission denied”錯誤,可通過以下方式解決:① 運行容器時添加--privileged=true參數;② 臨時禁用SELinux(setenforce 0);③ 調整SELinux規則(如chcon -Rt svirt_sandbox_file_t /path/to/mount)。systemctl stop firewalld)測試是否解決;若需保留防火墻,需添加--add-masquerade規則允許Docker流量:firewall-cmd --permanent --add-masquerade && firewall-cmd --reload。yum update kernel),并在/etc/docker/daemon.json中添加"storage-driver": "overlay2"配置。docker network inspect <network_name>),若不在同一網絡,可通過docker network connect <network_name> <container_id>連接;若在同一網絡仍無法通信,檢查Docker網橋配置(brctl show)。/etc/resolv.conf中的DNS服務器是否正確(如添加8.8.8.8),并確保防火墻允許Docker流量(firewall-cmd --permanent --add-masquerade)。docker0網橋IP與宿主機或其他設備沖突,可修改/etc/docker/daemon.json中的"bip"參數(如"bip": "192.168.1.1/24"),隨后重啟Docker服務。Docker配置文件(CentOS 7位于/etc/sysconfig/docker,CentOS 8及以上位于/etc/docker/daemon.json)中的語法錯誤或無效設置會導致服務無法啟動。需用文本編輯器(如vi)檢查配置,重點關注代理設置、存儲路徑等項,修正后重啟服務。
若df -h顯示磁盤空間不足(如/var分區使用率超過90%),需清理不必要的文件(如/var/log下的舊日志、/tmp目錄下的臨時文件),或擴展磁盤空間后重啟Docker。
若Docker啟動時報錯“Address already in use”,說明端口被占用??墒褂?code>netstat -tulnp | grep <port>或ss -tulnp | grep <port>查找占用端口的進程,終止該進程(kill -9 <pid>)或修改Docker容器端口映射。