为什么在可以安装服务或应用程序时对其进行 dockerize?

jes*_*ica 12 linux containers rhel docker dockerfile

我们有大约12 种服务和其他应用程序,例如 presto。

我们正在考虑为每个服务和应用程序构建 Docker 容器。将它们全部 dockerize 是否正确?

什么时候 Docker 容器不是理想的解决方案?

小智 1

优点:

  1. 为您的团队快速设置本地环境- 如果您已将所有服务容器化。这将为您的开发团队快速设置环境。
  2. 帮助避免“它对我的问题有效,但对你的问题不起作用” ——我们的许多开发问题通常源于开发环境设置。如果您将服务容器化,那么其中很大一部分会被卸载到其他地方。
  3. 更容易的部署——虽然我们都有不同的部署代码的流程,但这表明将它们容器化会让事情变得更加容易。
  4. 更好的版本控制- 正如您所知,可以标记,这有助于版本控制。
  5. 更容易回滚- 因为你有版本控制的东西,所以可以说回滚你的代码更容易。有时,只需指向您以前的工作版本即可。
  6. 轻松的多环境设置- 正如大多数开发团队所做的那样,我们设置了localintegrationstagingproduction环境。当服务容器化时,这会更容易完成,并且大多数时候,只需切换环境变量即可。
  7. 社区支持- 我们拥有强大的软件工程师社区,他们不断贡献出色的图像,这些图像可重复用于开发出色的软件。您可以利用这种支持。为什么要重新发明轮子,对吧?
  8. 还有更多......但是有很多很棒的博客您可以从中阅读。=)

缺点:我确实没有看到它有太多缺点,但这是我能想到的一个。

  1. 学习曲线- 是的,它确实有一些学习曲线。但从我的初级工程师那里看到,学习如何设置它并不需要太多时间。当您弄清楚如何进行容器化时,通常会花费更长的时间。

一些担忧:

  1. 数据持久性——一些工程师对数据持久性感到担忧。您可以通过将卷安装到容器来简单地解决此问题。如果您想使用自己的数据库安装,您只需将您的 HOST、DB_NAME、USERNAME 和 PASSWORD 与 localhost:5432 中的内容进行切换即可,一切都应该没问题。

我希望这有帮助!