【问题标题】:docker-compose per microservice in local and production enironments?docker-compose 在本地和生产环境中的每个微服务?
【发布时间】:2016-10-14 20:07:41
【问题描述】:

我希望能够在本地开发微服务,但也希望以最少的配置更改将它们“推送”到生产环境中。以前我是把所有微服务都放在一个docker-compose本地;但我开始发现这可能不实用。

新想法是每个服务拥有一个 docker-compose。这并不意味着它将仅使用一个容器运行;它可能有更多的内部(比如后面的一些数据存储等)。

从这个新的角度来看,我们来看看著名的docker voting app example,它由 5 个组件组成:

  • (P) Python web 应用程序,可让您在两个选项之间进行投票
  • (R) 收集新选票的 Redis 队列
  • (J) Java worker 消耗选票并将其存储在...
  • (S) 由 Docker 卷支持的 Postgres 数据库
  • (N) Node.js webapp,实时显示投票结果

假设您想将此示例投入生产(因此只有一个docker-compose 不是一种选择:)。不要忘记,可能会在其之上添加更多与基础设施相关的组件(如 kibana、prometheus ......)。我们希望能够扩展我们需要的东西;我们使用例如蜂拥而至。

问题是:

  • 如何组织这个示例:单个docker-composes 还是多个?
  • 我们这里有哪些微服务?换句话说,您会将哪些组件组合成单个docker-compose?示例:JS?
  • 如果服务不在单个 docker-compose 中,我们是否将它们添加到同一个覆盖网络以使用 swarm dns 功能?
  • 等等……

(我不需要关于如何安装的细节,这个问题是关于顶级组织的)

【问题讨论】:

    标签: docker docker-compose microservices docker-swarm docker-container


    【解决方案1】:

    Docker Compose 主要用于定义不同的容器、配置和使用单个命令使它们可用(也用于排序)。因此,它最适合本地开发、集成测试并将其用作持续集成流程的一部分。

    虽然不排除 Docker compose 可以在生产环境中使用,但我认为使用 Kubernetes 会是一个很好的例子,它可以更好地控制扩展,管理多个容器。

    此博客有一些示例场景可供尝试(以及许多其他有用的资源)

    https://renzedevries.wordpress.com/2016/05/31/deploying-a-docker-container-to-kubernetes-on-amazon-aws/comment-page-1/#comment-10

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-01
      • 1970-01-01
      • 2019-10-14
      • 2018-01-29
      • 2019-09-27
      • 2015-09-10
      相关资源
      最近更新 更多