You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 20.04上Docker CE运行1-2天停止所有容器该如何排查?

排查步骤按优先级执行如下:

  • 优先解决Docker版本不兼容问题
    你当前Docker客户端为20.10.8、服务端Engine为19.03.13,跨大版本运行存在明确的API兼容隐患。先完全卸载现有Docker、containerd、runc组件,从Docker官方源安装同一大版本的Docker CE,保证客户端与服务端版本匹配。
  • 检查containerd服务日志
    你之前仅排查了docker.service的日志,容器停止的调度指令通常由containerd发出,执行命令查看完整日志:
    sudo journalctl -xu containerd.service --since "7 days ago"
    重点匹配容器停止时间点的错误记录、资源报错、主动终止指令。
  • 排查系统OOM kill记录
    系统级内存不足触发的进程终止不会写入Docker或容器日志,只会留存于系统日志中,执行命令排查:
    grep -i oom /var/log/syslog
    dmesg | grep -i oom
    若存在对应时间点的OOM kill记录,调整容器资源限制或扩容宿主机内存即可。
  • 检查无人值守升级操作
    Ubuntu 20.04默认开启无人值守系统升级,若升级过程中更新了containerd、docker相关组件,会自动重启服务导致所有运行中容器停止,查看升级日志匹配时间点:
    cat /var/log/unattended-upgrades/unattended-upgrades.log
    确认是该问题的话,将docker、containerd相关软件包加入无人值守升级的黑名单即可。
  • 升级containerd与runc版本
    你当前使用的containerd v1.3.7、runc 1.0.0-rc10均为多年前的老旧版本,已知存在偶发容器终止的BUG,直接将containerd升级至1.6.x及以上稳定版、runc升级至1.1.0及以上版本即可覆盖修复这类已知问题。
  • 开启Docker debug日志复现定位
    若上述步骤都未找到原因,修改/etc/docker/daemon.json添加配置项"debug": true,重启docker服务后等待问题复现,debug级别的日志会记录所有容器操作的发起方、指令详情,可直接定位终止指令来源。
  • 排查第三方操作触发的停止
    检查所有用户的定时任务、运维脚本、监控告警规则,是否存在docker stop、docker system prune之类会终止容器的操作,很多时候非预期的容器停止都是这类未记录的人工/脚本操作导致。

内容的提问来源于stack exchange,提问作者not2savvy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 09:54:03