首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在使用docker部署应用程序时更新它

如何在使用docker部署应用程序时更新它
EN

Stack Overflow用户
提问于 2019-04-24 15:33:25
回答 2查看 1.3K关注 0票数 1

我使用docker部署了一个nodejs应用程序,我不知道如何在我的nodejs应用程序更新后更新部署。

当前,每次更新nodejs应用程序时,我必须删除旧的停靠容器和图像。

我希望当我更新nodejs应用程序时,它不需要删除旧的图像和容器。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-04-25 00:44:57

你贴上了这个“制作”的标签。我这样做的标准方式如下:

  1. 在没有码头的地方发展。让你所有的单元测试通过。在本地构建和运行容器,并运行集成测试。
  2. 构建容器的“正式”版本。用时间戳、版本号或源代码管理标签标记它;但不要用:latest或分支名称或任何其他随时间变化的名称标记它。
  3. 将生成的映像docker push到注册表。
  4. 在生产系统上,将您的部署配置更改为引用您刚刚构建的版本标记。按照某种顺序,使用新映像docker run容器(或更多),使用旧映像docker stop容器。
  5. 当一切都出错时,将您的部署配置更改回以前的版本,然后重新部署。(...oops.)如果旧版本的图像不在本地系统上,则可以从注册表中获取它们。
  6. 根据需要,docker rm旧容器和docker rmi旧映像。

通常情况下,其中的大部分都可以自动化。持续集成系统可以构建软件,运行测试,并将构建的构件推送到注册中心;像Kubernetes或Docker这样的集群管理人员擅长在某个地方保存某个容器版本的某些副本,并为您管理版本升级过程。(特别是Kubernetes部署将在关闭旧映像之前启动新映像的副本;Kubernetes服务提供负载平衡器来完成此工作。)

所有这些都不是节点特有的。就部署系统而言,任何地方都没有任何.js文件,只有Docker映像。(您不会将源文件与图像分开复制,也不会将源树绑定到映像内容上,也不会尝试对正在运行的容器进行实时修补。)在步骤5中不幸的还原之后,您可以在非生产环境中精确地运行失败的配置,以查看出了什么问题。

但是,从根本上说,您需要用旧图像删除旧容器,并使用新图像启动一个新容器。

票数 4
EN

Stack Overflow用户

发布于 2019-04-24 15:40:04

使用docker cp将新版本复制到容器中,然后使用docker restart <name>重新启动它

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55833754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档