Docker在CentOS中的故障排查指南
使用systemctl status docker.service命令确认Docker服务是否正在运行。若未启动,可通过systemctl start docker.service启动服务;若启动失败,需结合日志进一步分析。
服务启动失败时,日志是定位问题的核心。可使用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”,说明端口被占用。可使用netstat -tulnp | grep <port>或ss -tulnp | grep <port>查找占用端口的进程,终止该进程(kill -9 <pid>)或修改Docker容器端口映射。