首页/系统/Linux 运维命令速查/容器运行时与 systemd 集成要点
systemd 与服务42 条

容器运行时与 systemd 集成要点

docker/containerd 由 systemd 托管:单元关系、重启策略冲突、开机自启与日志驱动都是常见故障点。

Linux 运维命令速查系统更新于 2026-10-13

容器运行时与 systemd 是什么

容器运行时由 systemd 托管时,单元依赖顺序、重启策略分层与日志驱动都是常见故障点。关键是把两层分清:运行时的服务单元本身,以及容器自己的重启策略,两者的重启语义互不替代。

基本信息

用途理解容器运行时与 systemd 的协作关系
排查入口查看单元状态与对应日志
依赖声明单元里的先后顺序与依赖关系
日志去向由运行时的日志驱动决定

典型使用场景

  • 开机自启:确认运行时与编排组件谁先启动,避免编排组件抢先连接失败
  • 升级运行时:升级前后核对单元状态与容器是否自动恢复
  • 网络异常:运行时重启后容器网络与防火墙规则需要重新同步
  • 容器未恢复:区分是容器重启策略没生效还是编排层没拉起
  • 日志定位:容器输出按驱动分流,先确认该去哪里找

常用示例

常用示例
systemctl status docker --no-pager
systemctl is-enabled docker containerd
journalctl -u docker -n 100 --no-pager
systemctl cat docker.service | grep -E 'After|Wants|Restart'
systemctl list-dependencies docker.service | head -n 20

分层对照

层面配置位置作用范围
运行时单元systemd 单元文件运行时进程自身的自启与重启
容器策略创建容器时指定单个容器退出后的自动重启
编排层编排工具配置按期望状态拉起与调度
日志驱动运行时配置决定容器输出写到哪里
依赖顺序单元里的依赖声明决定开机时的启动次序
运行时重启与容器重启是两层:运行时重启后旧容器是否恢复取决于容器的重启策略,先把这两层分清再排查。
运行时与防火墙集成时,重启顺序不当会造成容器网络不通,出现这类现象先核对重启后规则是否完整。
生产环境的容器编排建议交给编排工具而不要裸跑,重启策略与依赖关系由编排层统一声明。

易错点

  • 运行时重启后旧容器不会自动启动,除非容器自身配置了重启策略
  • 依赖顺序写错会让编排组件在运行时之前启动,表现为连接被拒绝
  • 容器日志按驱动分流,排查时先确认日志写到哪里,否则一直看不到输出
  • 把容器网络异常直接归因于应用,实际可能是运行时重启后规则未重新同步

数据来源与参考

  • Docker 官方文档:systemd 集成
  • man 5 systemd.service

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌