Docker CD工作流-使Docker主机提取新映像并部署它们

Docker CD工作流-使Docker主机提取新映像并部署它们,docker,continuous-integration,continuous-deployment,Docker,Continuous Integration,Continuous Deployment,我正在为我的组织设置CI/CD工作流,但我错过了难题的最后一部分。这肯定是一个已解决的问题,还是我必须自己写 全貌 我在AWS上运行了几个EC2实例,每个都以其本机swarm模式运行docker。这里正在运行一些服务,我已经通过docker service create…手动启动了这些服务 当开发人员提交源代码时,会向jenkins发送一个触发器,以提取新代码并构建一个新的docker映像,然后将其推送到我的私有注册表 到目前为止一切都很好,但如何将新映像放到docker主机上,并将正在运行的容

我正在为我的组织设置CI/CD工作流,但我错过了难题的最后一部分。这肯定是一个已解决的问题,还是我必须自己写

全貌

我在AWS上运行了几个EC2实例,每个都以其本机swarm模式运行docker。这里正在运行一些服务,我已经通过
docker service create…
手动启动了这些服务

当开发人员提交源代码时,会向jenkins发送一个触发器,以提取新代码并构建一个新的docker映像,然后将其推送到我的私有注册表

到目前为止一切都很好,但如何将新映像放到docker主机上,并将正在运行的容器自动更新到新版本

Docker文档()指出,当新映像推送到注册表上时,注册表可以将事件发送到可配置的端点。这就是我想要通过让我的docker主机拉取新映像并使用新版本(使用相同的env标志、标签等)停止、销毁和重新启动服务来自动做出反应的原因,但我没有找到任何适合我的用例的解决方案

我已经找到了,但swarm不知道,在写这个问题的时候,它也不能从私人注册中心提取

最好我想要一个docker映像,我可以在docker manager上部署它,它可以监听注册表事件(在将注册表配置指向它之后),并执行我需要的魔法


成本是一个问题,但时间不是这样,所以我更倾向于写我自己的解决方案,而不是为此采用收费服务

一个选项是使用SSH从Jenkins连接到swarm master,并在将新映像推送到注册表时提取新映像和更新服务。

一个选项是使用SSH从Jenkins连接到swarm master,并在将新映像推送到注册表时提取新映像和更新服务。

这里指私有注册表是Amazon EC2容器注册表还是Dockerhub?一个选项是使用远程SSH插件从jenkins SSH到swarm master,然后拉取新映像,并在映像推送时更新服务。所谓私有注册表,我的意思是通过
docker拉取注册表使用docker注册表。感谢您使用ssh插件的建议。我会考虑这一点,当你提到私人注册表是亚马逊EC2容器注册中心还是DokHub?一个选项是使用远程SSH插件从jenkins SSH到swarm master,然后拉取新映像,并在映像推送时更新服务。所谓私有注册表,我的意思是通过
docker拉取注册表使用docker注册表。感谢您使用ssh插件的建议。我会考虑这个的。