我使用docker部署了一个nodejs应用程序,我不知道如何在我的nodejs应用程序更新后更新部署。
当前,每次更新nodejs应用程序时,我必须删除旧的停靠容器和图像。
我希望当我更新nodejs应用程序时,它不需要删除旧的图像和容器。
发布于 2019-04-25 00:44:57
你贴上了这个“制作”的标签。我这样做的标准方式如下:
:latest或分支名称或任何其他随时间变化的名称标记它。docker push到注册表。docker run容器(或更多),使用旧映像docker stop容器。docker rm旧容器和docker rmi旧映像。通常情况下,其中的大部分都可以自动化。持续集成系统可以构建软件,运行测试,并将构建的构件推送到注册中心;像Kubernetes或Docker这样的集群管理人员擅长在某个地方保存某个容器版本的某些副本,并为您管理版本升级过程。(特别是Kubernetes部署将在关闭旧映像之前启动新映像的副本;Kubernetes服务提供负载平衡器来完成此工作。)
所有这些都不是节点特有的。就部署系统而言,任何地方都没有任何.js文件,只有Docker映像。(您不会将源文件与图像分开复制,也不会将源树绑定到映像内容上,也不会尝试对正在运行的容器进行实时修补。)在步骤5中不幸的还原之后,您可以在非生产环境中精确地运行失败的配置,以查看出了什么问题。
但是,从根本上说,您需要用旧图像删除旧容器,并使用新图像启动一个新容器。
发布于 2019-04-24 15:40:04
使用docker cp将新版本复制到容器中,然后使用docker restart <name>重新启动它
https://stackoverflow.com/questions/55833754
复制相似问题