你应该在部署Web应用程序时重新创build容器吗?
我试图找出最佳做法是否会规定,当部署我的Web应用程序的新版本(nodejs运行在自己的容器中)时,我应该:
- 做一个从容器内的
git pull
并更新“到位”; 要么 - 用新的代码创build一个新的容器,并执行两个docker容器的热插拔
我可能会错过一些技术细节,因为我对容器的想法很陌生。
第二种方法是最佳实践:您将使用新代码制作第二个版本的图像,停止您的容器,并根据第二个版本运行第二个容器。
这个想法是,你可以很容易地回滚,因为你的图像的第一个版本可以用来运行最初在生产中的容器。
尝试修改正在运行的容器并不是一个好主意,因为一旦停止并删除它,再次运行它将从原始映像中以原始状态运行。 除非您将该容器提交到新映像,否则这些更改将会丢失。 即使你确实承诺了,你也不能轻易地重build那个图像。 (再加上你会提交所有的容器:它的新代码,而且在服务器执行过程中创build了一堆额外的文件:日志和其他文件:不是很干净)
一个容器应该从一个你可以从Dockerfile的规范中精确构build的图像运行。 它不应该在运行时被修改。
几个警告虽然:
- 如果你的容器被其他容器使用了(
--link
) ,你应该先停下来,停止你的容器并从新版本的图像中运行一个新容器,然后重新启动你的其他容器。 - 不要忘记重新安装您使用的任何数据容器 ,以获得持久性数据。
- debugging“serverless-webpack”:GraphQL错误:Lambda services-publishService在调用期间抛出一个错误
- 我在哪里build立我的docker图像的阶段和生产环境运行我的咕build生成步骤?
- 如何在JBoss EAP 7.0应用服务器上部署NodeJs项目?
- 如何将nodejs应用程序部署到谷歌云?
- NodeJS和Github:保持数据安全
- (gcloud.preview.app.deploy)错误响应:托pipe虚拟机无法托pipe在应用程序的区域
- 为什么我不能部署我的应用程序? (bluemix)
- 部署一个Sails.js应用程序到Heroku?
- 在单个端口后面运行多个sails应用程序