我使用docker部署了一个nodejs应用程序,我不知道在更新我的nodejs应用程序后如何更新部署。
当前,每次更新nodejs应用时,我都必须删除旧的docker容器和镜像。
我希望在我更新nodejs应用程序时不需要删除旧的图像和容器。
最佳答案
您标记了此“作品”。我这样做的标准方法是这样的:
:latest
或分支名称或随时间变化的其他任何方式对其进行标记。 docker push
将生成的图像编码到注册表。 docker run
一个或多个容器,并用旧图像docker stop
一个或多个容器。 docker rm
旧容器和docker rmi
旧图像。 通常,其中大部分可以自动化。持续集成系统可以构建软件,运行测试并将构建的 Artifact 推送到注册表。诸如Kubernetes或Docker Swarm之类的集群管理器擅长在某个地方运行某个容器的某个版本的一些副本,并为您管理版本升级过程。 (特别是,Kubernetes部署将在开始关闭旧镜像之前先启动新镜像的副本; Kubernetes Services提供了负载均衡器来完成这项工作。)
这些都不是特定于Node的。就部署系统而言,在任何地方都没有
.js
文件,只有Docker镜像。 (不要将源文件与镜像分开复制,也不要在镜像内容上绑定(bind)安装源树,并且绝对不要尝试对正在运行的容器进行实时修补。)不幸的是,在步骤5中还原后,您可以在非生产环境中准确运行失败的配置,以查看出了什么问题。但是,是的,从根本上讲,您需要删除带有旧镜像的旧容器,并使用新镜像启动一个新容器。
关于docker - 使用Docker部署应用程序时如何更新我的应用程序,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55833754/