常见问题:无法连接到Docker守护进程、Docker服务启动失败。
解决方法:
systemctl status docker.service确认Docker服务是否运行,若未启动则执行systemctl start docker。sudo systemctl stop docker.service → sudo rm -rf /var/lib/docker/* → sudo systemctl start docker.service)。sudo setenforce 0)或永久修改配置文件(/etc/selinux/config中将SELINUX=enforcing改为disabled),并重启系统。常见问题:容器状态为“Exited”或“Created”,无法正常运行。
解决方法:
docker logs <container_id>获取容器停止的具体原因(如应用崩溃、配置错误)。FROM ubuntu:20.04)、RUN/CMD指令是否正确(如apt-get update是否成功)、环境变量是否配置无误。--memory="512m"(限制内存)或--cpus="1.5"(限制CPU)调整资源配额。docker rm <container_id>)并重新运行(docker run -d --name <new_name> <image_name>)。常见问题:容器无法ping通外部IP、宿主机无法访问容器端口。
解决方法:
docker network ls查看网络列表,docker network inspect <network_name>确认网络参数(如子网、网关)是否正确;若网络异常,可删除并重新创建默认网络(docker network rm bridge → docker network create bridge)。docker exec -it <container_id> /bin/bash进入容器,使用ping <external_ip>测试与外部的连通性。firewall-cmd --zone=public --add-port=8080/tcp --permanent → firewall-cmd --reload)。docker run -p 8080:80 nginx,将容器80端口映射到宿主机8080端口)。常见问题:/var/lib/docker/overlay2目录占用过高,导致Docker无法启动或运行缓慢。
解决方法:
docker system prune命令清理停止的容器、未使用的镜像、网络和构建缓存(默认会提示确认,添加-a参数可清理所有未使用的镜像)。d_type支持(若未启用,需重新格式化分区并添加-O d_type=1选项);或修改/etc/docker/daemon.json文件,添加{"storage-driver": "overlay2", "storage-opts": ["overlay2.override_kernel_check=true"]}。常见问题:使用-v挂载目录后,容器内提示“Permission denied”或无法写入文件。
解决方法:
sudo setenforce 0,测试是否解决问题(若解决,说明是SELinux导致)。chcon命令修改挂载目录的安全上下文(如sudo chcon -Rt svirt_sandbox_file_t /host/path),或添加--privileged=true参数运行容器(谨慎使用,会赋予容器root权限)。/etc/selinux/config文件,将SELINUX=enforcing改为disabled,并重启系统。常见问题:Docker客户端与服务端版本不匹配、旧版本存在Bug。
解决方法:
docker version查看客户端与服务端版本,确保两者兼容(如客户端20.10.x需对应服务端20.10.x)。sudo yum remove docker docker-client docker-common),添加Docker官方仓库(sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo),安装最新版本(sudo yum install -y docker-ce docker-ce-cli containerd.io)。