在 Ubuntu 上 Docker 占用过高(CPU / 内存 / 磁盘) 是很常见的问题,通常不是 Docker 本身“吃资源”,而是容器、镜像、日志或配置导致的。下面按最常见原因 → 排查方法 → 解决方式来说明。
✅ 排查:
docker stats
看哪个容器 CPU / MEM 异常。
✅ 解决:
docker restart <容器名>
docker run -m 512m --cpus=1 ...
Docker 默认日志不限制大小,容易把磁盘/IO吃满。
✅ 查看日志大小:
du -sh /var/lib/docker/containers/*
✅ 解决(二选一):
方式一:限制日志(推荐)
docker run \
--log-opt max-size=10m \
--log-opt max-file=3 \
...
方式二:全局配置
编辑 /etc/docker/daemon.json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
然后:
systemctl restart docker
Docker 镜像、停止的容器、构建缓存会越积越多。
✅ 查看占用:
docker system df
✅ 清理(安全):
docker system prune
✅ 清理更彻底(⚠谨慎):
docker system prune -a
✅ 查看 Docker 状态:
systemctl status docker
journalctl -u docker --no-pager -n 50
✅ 常见解决:
apt update && apt upgrade docker.io
频繁 docker run 但没清理,会导致:
✅ 解决:
--rmdocker run --rm ...
docker container prune
Ubuntu 服务器内存小但没 Swap,Docker 很容易卡死。
✅ 查看:
free -h
swapon --show
✅ 建议:
docker stats
docker system df
df -h
free -h
journalctl -u docker -n 50
你可以补充:
docker stats 里哪个容器异常?lsb_release -a
docker version
我可以直接告诉你具体该改哪里。