Spring Cloud Project中的Docker容器化

时间:2017-11-15 11:11:12

标签: docker

我正在尝试使用弹簧和弹簧靴创建弹簧云微服务。我开发了一个Spring云Eureka服务器作为一个独立的弹簧启动项目。并为Zuul服务器创建了用于网关代理和路由的弹簧启动项目。

  • 现在我有3个春季启动项目,如上所述。在这里,我将docker容器带入我的项目。所以我通过使用结构工具探索了基于pom.xml的容器化。
  • 所以当我部署我的微服务时,需要通过容器化部署所有项目吗?那么云平台是否将所有微服务都分成了不同的容器?
  • 通过在单独的容器中部署我的所有微服务,云中是否存在任何问题,因为它们可以相互通信/呼叫?

有谁能帮助我澄清我对容器化和云部署我的Spring云微服务的困惑?

1 个答案:

答案 0 :(得分:6)

  

因此,当我部署我的微服务时,需要部署所有项目   集装箱?所以云平台也是如此   微服务进入单独的容器?

您不会被迫将所有微服务停靠。您可以自己对每个微服务进行dockerize并保持一些非dockerized。但是,这样做没有明显的好处。如果您正在使用Docker,最好是Dockerize all 你的微服务。

Docker maven插件配置最好分别在每个项目中完成。我建议仅使用maven插件来构建映像,并可选择将它们推送到注册表。然后,您可以单独部署每个图像。我会推荐 您使用Docker composeDocker swarm进行生产,以部署不同的微服务容器。

  

通过在单独的容器中部署我的所有微服务,云中是否存在任何问题,因为它们可以相互通信/呼叫?

不,不应该有任何问题。但是在容器通信时需要注意的主机名应该小心。如果您正在使用docker compose,则容器可以通过将服务名称作为主机名直接相互通信。例如,其他微服务可以使用http://eureka:8761向Eureka注册。因此,请确保设置正确的application.properties以访问其他服务。