当前位置: 首页 > news >正文

服务器重启后 Docker Compose 容器如何自动恢复运行

要想服务器重启后 Docker Compose 容器自动恢复,关键在于在 docker-compose.yml 中正确配置 restart 策略,通常推荐生产环境使用 unless-stopped 或 always,并确保 Docker 服务本身设为开机自启。

先说结论:配置重启策略是基础,但必须配合 Docker 守护进程的开机自启才能生效。

  • 适合:生产环境长期运行的服务
  • 先准备:确认 docker-compose.yml 配置
  • 验收:重启服务器后检查容器状态

命令速用版

version: '3.8'
services:web:image: nginx:alpinerestart: unless-stopped

将上述配置保存为 docker-compose.yml,并使用 docker-compose up -d 启动。

为什么会这样

Docker 容器的自动恢复机制由 Docker 守护进程监听容器状态事件触发,而非 Compose 自身轮询。当容器终止时,守护进程根据重启策略决定是否调用 docker start 操作。这一机制保证了即使宿主机重启,只要 Docker 服务启用,配置了适当策略的容器仍能恢复运行。

分步处理

1. 编辑配置文件:在 docker-compose.yml 的服务层级添加 restart 字段,可选值包括 no、on-failure、always、unless-stopped。

2. 启用 Docker 服务:确保操作系统层面 Docker 守护进程开机自启,执行 systemctl enable docker。

3. 重新部署:运行 docker-compose up -d 使配置生效,旧容器会被新配置替换。

怎么验证是否生效

1. 查看状态:使用 docker ps 确认容器正在运行。

2. 模拟重启:执行 reboot 重启服务器,登录后再次运行 docker ps 检查容器是否自动拉起。

3. 检查策略:使用 docker inspect -f "{{.HostConfig.RestartPolicy.Name}}" 容器名 确认策略已应用。

常见坑

1. 手动停止的影响:除非使用 always 策略,否则若容器被手动 docker stop 停止,unless-stopped 策略下不会自动重启。

2. 数据持久化:重启恢复不代表数据不丢失,关键数据必须挂载卷(volumes)到宿主机。

3. 启动依赖:若服务依赖数据库,需配合 depends_on 或健康检查,避免容器启动后因依赖未就绪而反复重启。

参考来源

  • Docker Compose 重启策略全解析
  • 揭秘 Docker 容器崩溃后如何自动恢复:3 个你必须知道的编排技巧-CSDN 博客
  • 服务器重启后如何自动重启 Docker 容器?
  • 服务器异常关机后 Docker 恢复指南:从排查到启动的全流程解析
  • docker 容器为啥会开机自启动

原文链接:https://www.zjcp.cc/ask/10102.html

http://www.jsqmd.com/news/767856/

相关文章:

  • 用立创EDA复刻蓝桥杯省赛真题电路:手把手搭建一个简易电压采集与显示系统(2022模拟题2)
  • DeepSeek-V4-pro 接入 Claude Code 教程
  • 三步轻松备份QQ空间说说历史记录:GetQzonehistory完整指南
  • Docker 27 医疗容器认证实操手册:从镜像签名、SBOM生成到FDA 21 CFR Part 11审计就绪,一步不踩坑
  • 软件评测师基础知识专项刷题:软件工程
  • C语言选择结构自用讲解
  • 03-二叉树——从递归遍历到非递归实现
  • 别再只盯着CAN了!手把手教你用CAN FD收发器搞定汽车ECU的8Mbps高速通信
  • 2026年质量好的江苏熔模铸造推荐品牌厂家 - 行业平台推荐
  • HTML 与 ISO-8859-1 编码
  • 2026新疆小包团定制旅行社推荐:纯玩无购物/口碑靠谱旅行社榜单排行 - 栗子测评
  • 专业干货:AI教材写作全攻略,低查重技巧与优质工具大揭秘!
  • AwesomeQt:最小的Qt6系列迷你版本教程发布!
  • 以物理定律约束智能算法,用镜像技术重构时空感知
  • Rust 错误处理实战:优雅应对异常情况
  • 【 LangChain v1.2 入门系列教程】【五】记忆管理,让 Agent 记住对话
  • Python热力学计算革命:iapws如何解决工程中的水蒸气物性计算难题
  • 贝叶斯语言模型SBP:小样本场景下的NLP新突破
  • 分布式锁从Redis到Redisson的演进
  • 2026年知名的鹤壁婚房装修/鹤壁旧房装修热选公司推荐 - 品牌宣传支持者
  • 开源数字永生框架实践:四维蒸馏构建AI数字分身
  • 开源IVD数据管理工具:从数据孤岛到标准化分析的实践指南
  • Anthropic Claude API用户代理插件:伪装请求头绕过限制与优化调用
  • 从零构建开源机械爪:ESP32控制与3D打印实践指南
  • 深度学习与地图增强代理技术在图像地理定位中的应用
  • 零基础吃透 Java 面向对象:类、对象、this 与 static 实战
  • 硬件设计避坑:PMOS缓启动电路关断慢?实测教你优化栅极泄放回路(含仿真文件)
  • Banana Pi BPI-Leaf-S3开发板硬件解析与AI应用开发
  • NS模拟器管理困境的终结者:NsEmuTools如何重塑你的游戏体验
  • 观察者模式是行为型设计模式的一种,其核心思想是定义对象间的一对多依赖关系