CI / CD中的Docker镜像仅适用于多主机?

我们是在Docker开发单个主机应用程序的两个人,我们希望减less一些testing时间并使用CI / CD。

许多文章都是关于使用付费服务来运行testing和构buildDocker镜像,然后部署镜像。

在多宿主环境中,我可以看到部署映像的优点,但单个主机又如何呢?

在单个主机案例中部署映像只是一个额外的复杂层?

更新

我们现在正在做的是推动到Git的变化,然后手动testing应用程序,如果它是好的,然后合并到掌握和login到生产服务器,并执行git pull && docker-compose build

当我谈到在问题中部署Docker镜像时,部署在产品上几乎就是docker pull 。 关键的区别是docker图像不是在生产服务器上构build的,而是在别的地方。

这是我问的。 当仅在单个主机/机器/服务器/节点上部署图像时,是否有将图像构build在其他地方的优点?

我正在回答已经更新的问题:

在其他地方build立图像有什么好处吗?

是的有一些。

  1. 生产服务器上的生成工具不必保持更新; 事实上,你根本不需要它们。 这样可以减lessdev / QA / prod环境之间版本不匹配的可能性,减less在服务器上发现的0天漏洞的几率。一般而言,生产服务器上附加的软件越less越好。
  2. 使用已经build好的容器,您可以立即开放许多选项:
    • dynamic的可伸缩性 。 一旦你发现你有大量的用户,你所要做的就是筹集新的虚拟机,并将容器拉到那里。 甚至在同一台主机上启动另一个容器并平衡它们。
    • 修补程序部署 。 有可能在重负载下出现一些错误。 而当您尝试同时服务大量用户构build新的bugfix容器时,生产服务器可能会资源不足。
    • 灾难恢复 。 如果您的生产主机突然死亡,您只需在其他地方运行docker集装箱。 在这种情况下,您可能会遇到一个未经优化的环境,但至less您不需要向用户写关于N小时宕机的解释电子邮件。

我可以跟上,但总结一下:这一切都取决于你有多less用户,你如何计划通过时间增长,你有多less资源,需要多less人build立,你有多宽容的宕机等等。当然,你可以在prod服务器上构build容器,并将其上传到docker repo,并且可以快乐地生活,以防这是一个非关键的内部门户。 但是,如果你是某种社交networking初创公司,你最好开始分离环境,并创build各种可扩展性和恢复计划。 而build立在另一台服务器上的应用程序是这样的计划的一个很好的部分。