温馨提示×

ubuntu docker为何崩溃

小樊
52
2026-10-16 01:36:23
栏目: 智能运维

Ubuntu 上 Docker 崩溃的原因有很多,下面按常见程度和排查思路给你一个系统性的说明,你可以对照自己的情况来看。


一、最常见原因

1. Docker 服务本身没起来 / 异常退出

systemctl status docker
journalctl -u docker -xe

常见表现:

  • docker ps 报错:Cannot connect to the Docker daemon
  • Docker 进程直接退出

常见原因:

  • 磁盘空间不足
  • 内存不足(OOM)
  • 配置错误(/etc/docker/daemon.json)

2. 磁盘空间不足(非常常见)

Docker 不擅长“自愈”,空间满就崩。

检查:

df -h
du -sh /var/lib/docker

解决:

docker system prune -a

3. 内存不足(OOM Killer)

容器或 Docker 本身被系统杀掉。

查看:

dmesg | grep -i oom
journalctl -k | grep -i kill

典型场景:

  • 大量容器
  • Java / 数据库容器
  • 没限制内存

4. 内核 / 系统不兼容

Ubuntu 某些版本 + 旧 Docker 容易炸。

检查:

uname -a
docker version

注意:

  • Ubuntu 22.04 / 24.04 推荐 Docker ≥ 24
  • 不要用 snap 版 Docker(问题多)

5. 使用了 snap 版 Docker(不推荐)

snap 版 Docker 经常:

  • 无法访问磁盘
  • 权限异常
  • 随机崩溃

查看:

which docker
snap list | grep docker

建议:

sudo snap remove docker

然后安装官方版: https://docs.docker.com/engine/install/ubuntu/


6. daemon.json 配置错误

比如:

  • 写错 JSON
  • 存储驱动不兼容
  • 指定了不存在的目录

检查:

cat /etc/docker/daemon.json

日志通常会明确报错。


7. 容器本身崩溃导致 Docker 不稳定

某些容器:

  • 疯狂写日志
  • 占满 inode
  • 触发 cgroup 异常

检查 inode:

df -i

二、快速排查顺序(推荐)

  1. 看 Docker 状态
systemctl status docker
  1. 看日志
journalctl -u docker -n 100 --no-pager
  1. 看资源
free -h
df -h
df -i
  1. 看内核
dmesg | tail -50

三、如果你愿意,我可以更精确帮你

你可以直接贴出:

  • Ubuntu 版本
  • Docker 版本
  • 崩溃时的报错日志
  • 是 Docker 服务崩,还是某个容器崩

我可以帮你精准定位原因并给修复方案。

0 踩