2015-10-15 47 views
2

我試圖找出是否最佳做法將決定了我的部署web應用程序的新版本時(在的NodeJS自身的容器中運行),我應該:部署Web應用程序時是否應該重新創建容器?

  • 從容器和更新裏面做一個git pull 「到位」;或
  • 創建新代碼的新容器和執行兩個搬運工容器

我可能會丟失一些技術細節的熱插拔,因爲我很新的集裝箱的想法。

回答

1

第二種方法是最佳實踐:您將使用第二版本的圖像(使用新代碼),停止您的容器並運行基於第二個版本的第二個容器。

這個想法是,您可以輕鬆地回滾,因爲您的圖像的第一個版本可以用來運行最初在生產中的容器。

試圖修改正在運行的容器並不是一個好主意,因爲一旦停止並刪除它,再次運行它將從原始圖像和原始狀態中運行。除非您將該容器提交給新映像,否則這些更改將會丟失。即使你確實提交了,你也無法輕鬆重建那張圖片。 (再加上你會提交所有的容器:它的新代碼,但也是在執行服務器期間創建的一堆附加文件:日誌和其他文件:不是很乾淨)

容器應該從您可以從specifications of a Dockerfile精確構建的圖像。它不應該在運行時進行修改。

夫婦知會備忘,但:

  • 如果你的容器is used (--link) by other containers,你會木珠停止這些第一,停止你的容器並運行圖像的新版本,一個新的,然後重新啓動其他容器。
  • 不要忘記重新安裝您使用的任何data containers以獲得持久性數據。
相關問題