Docker 方式部署的应用的版本更新

摘要:
通过使用Docker部署这些应用,好处就是方便升级、部署、备份。Dockerfile:如果镜像需要自己构建或者做定制,就会有DockerfileREADME.md:说明文档,介绍部署、升级、备份的步骤与注意事项。例外是同步API有不兼容变更的情况,比如harbor1.8升级到1.10,同步api发生了变更,官方也没给出兼容方案。这时就只能退回到方案一了:备份数据,然后下载新的harbor安装包进行部署。
前言

公司使用 Docker-Compose 的方式部署 Jenkins/Gitlab/Sonar/Confluence/Apollo/Harbor/ELK/MySQL 等一系列开发工具/测试数据库。
而每过一段时间,我们就要评估这些软件的新版本,再决定是否升级。

通过使用 Docker 部署这些应用,好处就是方便升级、部署、备份。

配置仓库

首先,我们有一个基础设施配置仓库,专门存放各应用的部署配置文件,每个应用一个文件夹,里面有这些文件:

  1. docker-compose.yml:harbor 除外,因为它的 docker-compose.yml 是从它自己的配置文件生成的。
    1. 应用数据一般直接映射到 ./xxx_data,这样数据和配置文件放在一起,方便统一管理。
  2. Dockerfile: 如果镜像需要自己构建或者做定制,就会有 Dockerfile
  3. README.md:说明文档,介绍部署、升级、备份的步骤与注意事项。
  4. 其他配置文件:如 harbor 需要 harbor.yml.

升级步骤

方案一

查看官方的升级说明,一般直接升级 Docker 镜像就行。

有不兼容的更新时,官方基本都会给出说明和升级建议,比如先升级到某个中间版本,再逐步升级到最新版。
或者在升级前按说明去运行某个数据库表结构修改的 sql。

通用的流程如下:

  1. 备份原有数据卷/映射文件夹,最好是直接和相应的配置文件一起备份。
    • 如果数据量太大不方便备份,你也很相信该软件的升级不会破坏数据,也可以不备份。。
  2. 更新镜像版本号(升级到最新版本,或者中间版本),然后 docker-compose up -d 启动。
  3. 有问题再回退。。。

如果应用比较重要,需要保证稳定可用,可以先把数据拷到新虚拟机上并通过新镜像部署,测试一段时间,确认没问题了再正式更新。

方案二

使用软件自带的“导入导出/主从复制”这样的功能,通过 api/cli/ui 进行数据的迁移。这样的好处是不会遇到兼容性问题,但是前提是软件本身有这样的功能。

比如 Harbor 仓库,基本都可以通过它的同步功能进行数据迁移。

例外是同步 API 有不兼容变更的情况,比如 harbor 1.8 升级到 1.10,同步 api 发生了变更,官方也没给出兼容方案。
这时就只能退回到方案一了:备份数据,然后下载新的 harbor 安装包进行部署。

免责声明:文章转载自《Docker 方式部署的应用的版本更新》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇css多栏自适应布局TLPI读书笔记第23章:定时器与休眠2下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

DCM 图片查看

因为要处理一些医学图像,需要把dcm格式的文件转换成jpg格式。本来用Sante DICOM Editor用得挺好的,方便查看dcm文件,但是在转换上每次只能转一张(本人没有找到用该软件批量转格式的方法)。于是在网上搜集了各种软件(图片格式转换大师、DCM图片转换大师等等),要么是要付费的,要么就是有病毒。在线转换器最多只能转30张,多的就要付费。 最终发...

Jenkins+SonarQube+Gitlab搭建自动化持续代码扫描质量平台

前言 本篇文章主要介绍的是Jenkins+SonarQube+Gitlab搭建自动化持续代码扫描质量平台的集成。 博客之前已经有关于Jenkins、SonarQube、Gitlab分别安装的文章,本文主要说明三种平台集成使用,实现代码持续集成与自动化部署。 一、jenkins集成gitlab jenkins中添加gitlab插件,选择直接安装,然后服务器中...

WPF 中托管 UWP

托管标准 UWP 控件 1. 新建空白应用(通用 Windows)项目,确保目标版本和最低版本均设置为 Windows 10 版本 1903 或更高版本。在 UWP 应用项目中,安装Microsoft.Toolkit.Win32.UI.XamlApplication 2. 修改App的默认基类为XamlApplication <xaml:XamlAp...

Docker实现运行tomcat并部署项目war包,并实现挂载目录

之前写的有点乱,现在再来整理一下docker的简单部署运行 借鉴博客:https://blog.csdn.net/qq_32351227/article/details/78673591 一、docker的安装,以及配置开机自启docker服务就不说了,网上一大把,我也做了另一篇博客笔记 #。。。 二、docker下载tomcat镜像并运行   2.1:搜...

火狐无法启动,如何恢复数据、书签、密码

今天火狐在更新时被金山卫士干扰,导致更新后无法再启动。 我一时没考虑太多,重新安装了一下火狐,后来一想,妈的,我的书签和网站密码之类的会不会全丢了,太蛋疼了。 网上找了许多资料,总结了一下找回数据的方式。 只要你不是选择卸掉火狐选择了删除数据的话,问题就不大的。 我这里只有WINDOWS的解决办 最好操作前先关掉杀软之类的东西,别的程序也关掉,免得干扰。...

腾讯云对象存储权限管理操作指南

第一步:登录网站 腾讯云官网 点击左上角的登入选项,进行界面的登录登录页面 可以进行多端登录,这里推荐使用微信直接扫码进行登录 第二步:对象存储 登录后进入如下界面,将鼠标移动到左上角产品,点击中间的对象存储,进入对象存储界面 点击立即使用跳转到对象存储界面。 第三步:创建存储桶 点击左侧的存储桶列表,进行查看存储桶,再点击创建存储桶进行存储桶的创建 按照...