ECS Docker Compose 数据卷备份恢复 Runbook

简介: 本文记录阿里云ECS上用Docker Compose维护小型业务服务(app/mysql/redis/Nginx)的实战要点:固定镜像版本、规范数据卷、执行逻辑备份与恢复验证、预拉镜像避卡顿、做好回滚准备,确保升级安全可控。(239字)

这是一份 ECS 上维护 Docker Compose 基础服务的记录。场景是一个小型业务环境,使用 Compose 跑 appmysqlredis 和反向代理。

维护目标:

  • 固定数据库和缓存镜像版本。
  • 确认 MySQL 数据卷位置。
  • 做逻辑备份并恢复验证。
  • 升级前预拉镜像,避免窗口期卡在拉取。

1. 检查最终配置

docker compose config

MySQL 服务建议明确写命名卷:

services:
  mysql:
    image: docker.1ms.run/mysql:8.4
    environment:
      MYSQL_ROOT_PASSWORD: change-me
      MYSQL_DATABASE: app
    volumes:
      - mysql-data:/var/lib/mysql

volumes:
  mysql-data:

2. 检查 volume

docker volume ls
docker volume inspect 项目名_mysql-data

如果项目目录改过,需要特别注意 Compose 项目前缀是否变化。项目前缀变化后,新卷名字也会变化。

3. 备份 MySQL

docker compose exec mysql sh -c 'mysqldump -uroot -p"$MYSQL_ROOT_PASSWORD" app' > mysql-app.sql

恢复验证:

cat mysql-app.sql | docker compose exec -T mysql sh -c 'mysql -uroot -p"$MYSQL_ROOT_PASSWORD" app'

如果恢复失败,先处理用户、密码、数据库名、字符集和版本差异,不要进入升级步骤。

4. 检查 Redis

如果 Redis 只是缓存,重建影响有限。如果 Redis 承载队列或会话,需要挂载 /data 并确认持久化策略:

services:
  redis:
    image: docker.1ms.run/redis:7
    command: ["redis-server", "--appendonly", "yes"]
    volumes:
      - redis-data:/data

云服务器上还要检查安全组和端口暴露,不要把 Redis 直接暴露到公网。

5. 预拉镜像

docker pull docker.1ms.run/mysql:8.4
docker pull docker.1ms.run/redis:7
docker pull docker.1ms.run/nginx:1.27-alpine

预拉通过后,再执行升级:

docker compose pull
docker compose up -d

6. 回滚准备

维护前记录:

  • 旧镜像 tag。
  • 当前 compose.yaml
  • 数据库备份文件。
  • 关键 volume 名称。
  • 恢复验证结果。

小结

ECS 上跑 Compose 服务时,镜像、容器、数据卷要分开处理。容器可以重建,镜像可以重拉,数据卷必须先备份并验证恢复。维护窗口里要解决的是升级,不应该临时排查备份能不能用。

相关文章
|
开发工具
在 uniapp 上使用 mPaaS 的全屏扫码功能
在 uniapp 上使用 mPaaS 的全屏扫码功能
1245 1
|
Kubernetes 数据可视化 Docker
Kubeadm方式搭建k8s集群全流程-20230207
Kubeadm方式搭建k8s集群全流程-20230207
403 0
|
小程序
uniapp如何分包 & 分包配置后无法读取static文件夹
uniapp如何分包 & 分包配置后无法读取static文件夹
1037 0
uniapp如何分包 & 分包配置后无法读取static文件夹
|
8天前
|
Web App开发 人工智能 Cloud Native
一人买多用不完,多人分享被封号——"Key池化"破解 AI 订阅共享困局
Claude用户面临“独用浪费、共享封号”困局:Max 20x额度闲置,多人拼车却因IP跳变、指纹泄露等触发风控。Key池化方案通过本地代理+虚拟Key分发,实现额度共享而不共号,规避风控,降低成本(3人仅$200/月),提升安全与体验。
192 7
|
24天前
|
Shell iOS开发 MacOS
npm全局安装后提示codex command not found的7种解决方法(2026)
2026 年呼声最高的 Claude Code 功能,悄悄在 v2.1.169 上线了,多数人还不知道它切目录时能把提示缓存保住,不是清掉重来。 如果你以前每次想去 git worktree 或者隔壁仓库工作,都得退出 Claude Code 重启——这套仪式从 2026-06-08 起可以扔掉了。新出的 /cd 命令让会话中途切到任何目录,前缀缓存还能活着。对 Claude Opus 4.8(输入 5 美元/M token、缓存读 0.5 美元/M token)来说,这意味着原本要重发的那一堆上下文打了一折。 但”保住缓存”这句话带 3 个星号。这篇把可验证的机制、操作步骤、3 个会让缓
|
3月前
|
安全 关系型数据库 PostgreSQL
别让烂代码拖垮项目!Docker一键部署SonarQube,10分钟搞定代码质量检测
还在为代码里的隐藏bug、安全漏洞和越积越多的技术债头疼?本文教你用Docker快速部署SonarQube这款业界领先的代码质量检测工具,从环境准备到第一次代码扫描全程保姆级教学。支持30多种编程语言,能自动检测bug、安全漏洞、代码异味,还能生成可视化的质量报告,让你的团队告别"屎山",写出更健壮、更易维护的代码。
409 1
别让烂代码拖垮项目!Docker一键部署SonarQube,10分钟搞定代码质量检测
|
27天前
|
供应链 算法 数据安全/隐私保护
1688店铺流量提升全攻略:零基础合规实操,长效稳定起量
本文深度解析2026年1688平台免费流量逻辑,聚焦搜索、场景、活动、新灯塔四大核心维度,提供零付费、合规、可落地的新手运营方案,助工厂与中小商家突破“零曝光、零询盘”困局,实现自然流量稳步增长。
|
3月前
|
运维 应用服务中间件 nginx
运维常用软件及高频命令汇总
本文精炼汇总Linux与Windows双平台高频运维命令,涵盖系统监控(★top/free/df)、网络诊断(★ping/netstat)、进程服务管理(★ps/systemctl/tasklist/taskkill)及Nginx、Docker等专项工具,标★命令均为每日必用核心指令,兼顾新手入门与日常速查,实用性强。
347 2
|
3月前
|
Prometheus 并行计算 异构计算
containerd 节点 GPU 镜像预热记录
本次在GPU节点复现推理环境时,首遇镜像拉取失败(ImagePullBackOff),Pod卡在ContainerCreating状态。通过`crictl pull`逐源验证并预热vLLM、CUDA、Prometheus及pause镜像,明确分离镜像问题与模型问题,提升排障效率。(239字)
|
10月前
|
人工智能 机器人 新能源
深化新工科建设 共探智能新未来 | 阿里云支持南京大学苏州校区“AI DAY”盛大启幕丨云工开物
9月12日,南京大学苏州校区举办“AI新视界:深化新工科建设进行式”活动,采用教师与学生双专场模式,通过主题分享、实践演练、产业课题发布等形式,搭建产教融合AI交流平台,助力未来产业科技人才培养。