Docker 环境下 MySQL 升级

来源:本站原创 点击数: 发布时间:2025年11月06日

客户的mysql版本太旧扫描出来不少漏洞,建议客户升级但是客户担心升级后影响业务稳定性,所以我在docker上面运行了一个MySQL容器来进行升级测试,整个流程如下:

  1. 备份数据:首先确保现有容器的数据库数据已做备份。可使用 docker exec <mysql-container> mysqldump … 导出全量数据,或确保数据卷(如 /var/lib/mysql)有最新快照。

  2. 停止服务 & 记录版本:使用 docker stop <container> 停止当前容器,记录当前镜像标签与版本(docker inspectdocker images)。防止升级失败后无法回退。

  3. 拉取新镜像:在宿主机或 CI/CD 环境运行 docker pull mysql:<new-version>,确保拉取到目标版本镜像。建议不要使用 mysql:latest,而固定为 mysql:8.0.x 等标签,以避免意外跳版本。

  4. 停止并移除旧容器docker rm <container>(在确认备份安全后)以释放容器资源,同时保留数据卷。

  5. 启动新版本容器:使用新的镜像标签启动新容器,同时挂载相同的数据卷(确保 /var/lib/mysql 路径一致且拥有正确权限),容器启动后 MySQL 会自动进行必要的内部升级。

  6. 验证服务状态:进入容器或外部使用客户端连接,检查版本是否已升级、数据是否完整、应用是否能正常访问。查看日志确认无错误。

  7. 清理旧镜像:确认新版本运行稳定后,可使用 docker image prune 等命令清理旧镜像,避免空间浪费。