您应该在部署Web应用程序时重新创建容器吗?

时间:2015-10-15 20:45:47

标签: node.js git deployment docker

我试图弄清楚最佳实践是否会要求在部署新版本的我的网络应用程序(nodejs在自己的容器中运行)时,我应该:

  • 从容器内部做git pull并更新"到位&#34 ;;或
  • 使用新代码创建一个新容器并执行两个docker容器的热插拔

我可能会遗漏一些技术细节,因为我对容器的想法很陌生。

1 个答案:

答案 0 :(得分:1)

第二种方法是最佳做法:您可以制作图像的第二个版本(使用新代码),停止容器,并根据第二个版本运行第二个容器。

我们的想法是您可以轻松回滚,因为您的图像的第一个版本可用于运行最初在生产中的容器。

尝试修改正在运行的容器并不是一个好主意,因为一旦停止并删除它,再次运行它将来自原始图像,具有其原始状态。除非您将该容器提交到新映像,否则这些更改将丢失。即使您确实提交了,也无法轻松重建该图像。 (另外你会提交所有容器:它的新代码,还有在服务器执行期间创建的一堆额外文件:日志和其他文件:不是很干净)

应该从可以从specifications of a Dockerfile精确构建的图像中运行容器。它不应该在运行时修改。

但有几点需要注意:

  • 如果您的容器is used (--link) by other containers,您将首先停止这些容器,停止容器并从新版本的映像运行新容器,然后重新启动其他容器。
  • 请勿忘记重新安装您正在使用的任何 data containers ,以便获取持久数据。