Docker 在 CentOS 上“卡”可能表现为:启动慢、命令无响应、容器运行卡顿、docker ps 都卡住 等。下面按常见原因给你一套排查和解决思路。
docker version
docker info
docker ps
docker version 客户端都卡 → Docker 服务本身有问题docker ps 卡但 docker images 正常 → 可能是容器/存储问题systemctl status docker
journalctl -u docker -n 100 --no-pager
解决:
systemctl restart docker
如果重启也卡:
pkill dockerd
rm -f /var/run/docker.pid
systemctl start docker
CentOS 默认有时会用 devicemapper,容易卡。
查看:
docker info | grep Storage
✅ 推荐改用 overlay2(CentOS 7.4+ 支持):
cat > /etc/docker/daemon.json <<EOF
{
"storage-driver": "overlay2"
}
EOF
systemctl restart docker
⚠️ 改之前最好备份容器和数据
df -h
df -i
Docker 很怕 /var/lib/docker 满。
清理:
docker system prune -a
或手动:
rm -rf /var/lib/docker/overlay2/*
free -h
top
Docker 在资源紧张时会非常卡。
建议:
限制容器资源:
docker run -m 1g --cpus=1 nginx
CentOS 特有坑。
临时关闭测试:
setenforce 0
systemctl stop firewalld
如果好了,再配置规则而不是长期关闭。
CentOS 自带 repo 的 Docker 很老。
✅ 建议用官方源:
yum remove docker docker-client docker-common
yum install -y yum-utils
yum-config-manager --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
yum install docker-ce docker-ce-cli containerd.io
docker logs 容器名
docker exec -it 容器名 bash
top
✅ CentOS 7 + Docker CE + overlay2
✅ 不用 devicemapper
✅ 定期 docker system prune
✅ 资源做限制
如果你愿意,可以告诉我:
我可以给你更精准的方案。