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

前言

公司使用 Docker-Compose 的方式部署 Jenkins/Gitlab/Sonar/Confluence/Apollo/Harbor/ELK/MySQL 等一系列開發工具/數據庫。
而每過一段時間,咱們就要評估這些軟件的新版本,再決定是否升級。docker

經過使用 Docker 部署這些應用,好處就是方便升級、部署、備份。數據庫

配置倉庫

首先,咱們有一個基礎設施配置倉庫,專門存放各應用的部署配置文件,每一個應用一個文件夾,裏面有這些文件:api

  1. docker-compose.yml:harbor 除外,由於它的 docker-compose.yml 是從它本身的配置文件生成的。
    1. 應用數據通常直接映射到 ./xxx_data,這樣數據和配置文件放在一塊兒,方便統一管理。
  2. Dockerfile: 若是鏡像須要本身構建或者作定製,就會有 Dockerfile
  3. README.md:說明文檔,介紹部署、升級、備份的步驟與注意事項。
  4. 其餘配置文件:如 harbor 須要 harbor.yml.

升級步驟

方案一

查看官方的升級說明,有不兼容的更新時,通常官方都會給出說明和升級建議,好比先升級到某個中間版本,逐步升級到最新版。工具

  1. 備份原有數據卷/映射文件夾,最好是直接和相應的配置文件一塊兒備份。
  2. 更新鏡像版本號,而後 docker-compose up -d 啓動。
  3. 有問題再回退。。。

若是應用比較重要,須要保證穩定可用,能夠先把數據拷到新虛擬機上並經過新鏡像部署,測試一段時間,確認沒問題了再正式更新。開發工具

方案二

使用軟件自帶的「導入導出/主從複製」這樣的功能,經過 api/cli/ui 進行數據的遷移。這樣的好處是不會遇到兼容性問題,可是前提是軟件自己有這樣的功能。測試

相關文章
相關標籤/搜索