【问题标题】:How to orchestrate multiple microservices on local env?如何在本地环境中编排多个微服务?
【发布时间】:2018-01-29 04:24:04
【问题描述】:

在发言的那一刻,我有一堆服务在自己的容器上运行每个服务 每个代码仓库都有自己的 Docker 文件和 docker compose 文件,以便在我的本地开发机器上启动服务

一切都很好,我可以访问每个服务

http://localhost:[service映射/暴露端口]

问题是服务正在增加,我认为将所有内容都放在本地专用网络中可能是一个更好的主意,其中每个服务的容器都有自己的 IP 地址。

这是在本地编排容器的更好方法吗?

我应该从哪里开始做决定?

【问题讨论】:

  • 作为协调者,您不喜欢docker compose 的哪些方面?
  • 不是...我不喜欢使用端口来映射主机上的每个容器...而不是在专用网络上让每个容器都有自己的 IP。您是否建议使用独特的 docker compose 文件来编排多个服务/容器?现在每个服务都有自己的 Dockerfile/s 和 docker-compose。
  • 是的。我使用 compose 和一个 dicker-compose.yml 来创建一个专用网络,在该网络中,MS 可以看到彼此而不暴露其端口
  • 我可以想象有办法做到这一点。我应该从哪里开始?此外,您如何从主机访问每个服务(例如通过 Http)以管理它们(例如访问服务管理 UI)?
  • 您从 docker-compose docs 网站开始:docs.docker.com/compose/overview

标签: docker development-environment microservices orchestration


【解决方案1】:

理想情况下,您会在一个或多个 docker compose 文件中描述您的整个设置。请参阅details 的文档。

关于网络和链接您的服务: Docker compose 支持networking。您可以定义网络,并且同一网络中的所有服务都可以使用它们的 serviceName 和内部端口(正如应用程序所知道的那样)相互访问。例如:http://mySuperService:3001

如果您需要服务的多个副本或多台机器,则需要研究编排器,例如 docker swarm(最容易开始)或 Kubernetes 或其他。

【讨论】:

    猜你喜欢
    • 2016-10-14
    • 2018-08-05
    • 1970-01-01
    • 2019-09-07
    • 1970-01-01
    • 1970-01-01
    • 2016-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多