Ubuntu 下 Docker 卡顿的原因通常不止一个,下面把常见原因 + 对应排查/解决办法给你梳理一下,方便你对着查。
Docker 默认使用 overlay2 存储驱动,对磁盘 IO 非常敏感。
表现
docker ps 都卡排查
iostat -x 1
如果 %util 接近 100%,就是磁盘问题。
解决
# /etc/docker/daemon.json
{
"data-root": "/ssd/docker"
}
然后:
systemctl restart docker
Ubuntu 上 Docker 容易因为:
排查
free -h
dmesg | grep oom
解决
docker run -m 1g --memory-swap 1g ...
swapon --show
尤其是:
排查
top
htop
docker stats
解决
docker run --cpus=2 ...
默认 json-file 日志不限制大小。
排查
du -sh /var/lib/docker/containers/*
解决
{
"log-driver": "json-file",
"log-opts": {
"max-size": "50m",
"max-file": "3"
}
}
很多人说“Ubuntu Docker 卡”,其实是:
解决
/mnt/cUbuntu 22.04+ 默认 cgroup v2,有些老镜像会卡。
排查
stat -fc %T /sys/fs/cgroup
解决
你可以依次看:
docker stats 是否 CPU/内存爆了iostat 磁盘是否 100%df -h 是否磁盘满dmesg | grep oom如果你愿意,可以把下面信息发我,我能更精准判断:
docker stats 输出我可以直接帮你定位到“哪一行配置要改”。