搜尋

首頁  >  問答  >  主體

打包好的docker映像如何在啟動容器前進行測試

專案在docker容器集群上跑, 每次部署會幹掉舊容器, 然後根據打包好的新鏡像啟動容器.
這裡有個嚴重的問題, 就是如果新的鏡像出現問題, 舊容器又被幹掉, 會導致業務無法訪問.
請問是否有辦法將打包的鏡像先測試能否正確啟動容器?

大家讲道理大家讲道理2757 天前797

全部回覆(2)我來回復

  • PHPz

    PHPz2017-04-27 09:04:21

    叢集像docker swarm,當升級容器映像時,先啟動新的容器,等新的容器正常啟動後,再停止舊容器。
    Docker啟動容器時,如果容器裡的指令能正常啟動,就會認為容器啟動正常。 docker swarm隨即會停止舊容器。
    但是有些業務不是說容器裡的進程啟動成功就表示業務正常了,這個時候可以使用Dockerfile中的healthcheck指令來自定義檢查業務健康的命令,只有這個命令返回結果為0時才認為容器啟動正常,這樣swarm才停止舊容器。 https://docs.docker.com/engin...

    回覆
    0
  • 仅有的幸福

    仅有的幸福2017-04-27 09:04:21

    既然已經是集群了,難道沒有熱備系統嗎?相同容器至少跑兩個實例,一個作為備份。升級的時候先升級其中一個,再升級剩餘部分。 類似於這種

    回覆
    0
  • 取消回覆