gpt4 book ai didi

docker - 远程连接本地和其他容器上的docker容器

转载 作者:行者123 更新时间:2023-12-02 19:35:36 25 4
gpt4 key购买 nike

为了便于开发调试和解决部署方面的问题,我们计划将我们拥有的服务容器化。例如。

我有ABCD等服务。其中A是我的开发代码(经常更改),而B,C和D是从属服务。

目前,BCD计划远程部署,因为它们只是一个依赖项(Docker容器)
我想要一种调试/部署的方法,以便

  • 我的服务A可以位于本地,并且可以轻松地与远程Docker服务连接BCD
  • A可以以某种方式部署到远程集群并可以进行测试。

  • 我曾想过要推送到注册表,但是每个推送了自己的快照的开发人员都无法将其他镜像相互关联。

    注意:
  • 我不需要Swarm之类的东西,但希望保持简单。
  • 通过Docker Machine管理集群。可以更换吗?
  • 服务由Docker Compose编织。

  • 关于如何 push 这一点的任何建议?首选方法是通过Docker。

    最佳答案

    在此分享我的经验的简化版本。要考虑在远程docker引擎上运行依赖项(BCD)是否值得解决,以下一项(通常)必须为true:

  • 依赖服务使用的资源量在单个开发人员计算机上运行并不现实。
  • 初始化依赖服务的数据非常麻烦,因为其大小或其他因素使它难以在本地运行。
  • 依赖服务使用的数据引起了隐私问题

  • 使用远程方法可能导致的损失更加可怕。
  • 开发人员无法轻松控制正在运行的依赖服务的版本。如果这些服务是自定义的,则它们尤其重要,因为它们可以在发现或解决问题时降级或升级版本。
  • 在过渡到较新版本的3rd Party服务期间,这也可能是一个问题,因为并非所有开发人员都可能在支持它的分支上进行工作。
  • 此外,如果没有足够的灵活性快速地跳回到较旧的分支/版本来修复或解决问题,然后将其集成/测试到当前分支中,则在最需要时(可能是时间问题! )

  • 这些列表中还有许多其他要点,但这对我们来说很重要。

    我们最终采用了混合方法。

    开发人员将在本地执行所有任务的所有任务。我们缩减了用于本地开发的相关服务所需的数据,以便它们可以在几分钟内在本地启动。使开发环境完全“脱机”是一个巨大的优势。如果集中式系统出现故障,您的开发人员会迅速陷入僵尸群中,在停机期间漫游。他们还具有在火车回家上启动笔记本电脑的能力,并在需要时调试一些奇怪的问题,然后提交并让CI系统通过测试进行检查,而在他们继续自己的生活时。

    此外,我们使用运行相关服务的docker引擎启动了一些VM。它们(主要)具有 livedev名称前缀(以及其他(如果需要的话)名称),并包含实时环境中的快照。如果需要,开发人员可以使用单独的撰写设置。当开发人员试图解决由不良数据或代码导致的错误问题时,这种问题只会严重扩展大型数据集。

    永远不会改变的是 A始终在开发人员计算机上运行。如果某人出于某些原因有其他需求,我们将使用docker引擎,一些数据快照和相关服务启动一个新的VM。这是一个 全自动过程,因此这需要一个完善且有效的管道。如果我选择开始个人设置,则主机名可能带有我的用户名前缀。

    我想说的是,如果开发人员可以在本地运行所有内容,那么就可以省掉很多工作,并做到这一点。寻找明智的方法,使所有依赖的服务在几分钟内平稳运行。

    数据依赖性和隐私问题

    我也将在这里提出这一点,因为太多的人忽略了这一部分。

    现在,GDPR和Privacy Shield很有可能在2018年对隐私问题施加更大的压力(至少您存储有关欧盟公民的数据),您的公司将必须认真对待这一点,否则可能面临巨额罚款和/或客户放弃您。这增加了更多的工作。
  • 本地服务的所有图像都包含生成的数据或实时数据的转换子集,这些数据可能无法用于识别个人。
  • 远程devlive主机还包含转换后的数据以隐藏身份,但进行了一些简化以大大加快此过程。
  • 只有一小部分开发人员可以访问实时系统,并且这也是唯一允许使用实时数据运行自己的VM的开发人员(为该主机提供了唯一的客户端证书)。

  • 开发人员每天都会带着笔记本电脑旅行,甚至带回家。包含任何关于个人的任何形式的信息的数据都不会最终出现在开发人员的便携式计算机上。

    关于docker - 远程连接本地和其他容器上的docker容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45489456/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com