在 Docker 上组织多层应用程序的最佳实践

nei*_*tos 5 docker docker-compose

我想获得一些有关使用 Docker 组织项目的最佳实践的建议。

假设我有一个项目 X,它由两个主要应用程序组成:商店和产品管理应用程序。它们是完全不同的应用程序,但属于同一项目的一部分。他们有自己的服务、源代码、存储库和基础设施。

存储[mysql、mongodb、elasticsearch、nginx、php、app源代码] PMA[mysql、nginx、php、app源代码]

由于它们是两个不同的存储库并且有自己的 docker-compose 文件,我如何才能仅用一个命令来运行所有内容?

我应该创建一个 docker 存储库来扩展 docker-compose 并一次性运行所有内容吗?

CTo*_*dea 0

  • 尽可能地隔离事物,因此,如果您需要 mysql 和 mongodb,请将它们分开,并使容器尽可能小,只包含它们需要的库和二进制文件(又名 微容器)。为了实现这一点,您还可以使用alpine linux构建镜像。
  • 对于数据库容器来说,使用卷将数据存储在主机而不是容器中,工作速度更快。您还可以将配置文件存储在卷中,这样您就不必每次想要更改配置时都访问容器。
  • 使用 Dockefiles,无需手动构建图像,这使得图像可以在任何主机中复制,并且您可以将它们存储在 git 中。
  • 使用 docker compose 一次性构建并运行所有容器。