如何使用docker运行微服务

问题描述:

是Spring引导的新手。我需要创建微服务,并需要由docker运行。我在这里附上了我的项目结构。每次我需要手动启动微服务时遇到的问题。例如,我有4个微服务,我只是手动启动这个服务。但是所有的微服务应该在部署到docker时自行启动。如何实现这一点。 Project Structure如何使用docker运行微服务

此外我正在使用Cassandra数据库。

+0

旧的文章我的,[使用Spring启动,泽西岛,扬鞭和泊坞微服务( http://tech.asimio.net/2016/04/05/Microservices-using-Spring-Boot-Jersey-Swagger-and-Docker.html)通过该练习,构建jar文物,构建和部署Docker映像Docker集线器并启动这种映像的Docker容器。我建议尽管将每个服务分成它自己的scm回购,这是根据[12因子应用程序](https://12factor.net/)的建议。 – ootero

我不知道这是否是最好的解决办法,但它是我使用的一个: 第一弹簧引导行家说插件来创建一个可执行的JAR:

<configuration> 
    <executable>true</executable> 
</configuration> 

之后,你可以在init.d中添加您的应用程序作为服务,并在容器启动时启动它。 你可以在这里找到一个更好的解释:http://www.baeldung.com/spring-boot-app-as-a-service

请看看春季启动和码头化这个应用程序的众多教程。

Here是其中一个解释每一步是必要

  1. 构建应用程序的JAR文件
  2. 创建Dockerfile 您的码头工人形象在这个dockerfile您创建一个环境,比如你将有一个新的安装的Linux服务器,并且定义了运行应用程序所需的软件:例如java。看看现有的图像,如anapsix/alpine-java
  3. 现在想想你需要做什么来在这个环境中启动你的应用程序:java -jar --some-options -location-of-your-jar.jar
  4. 确保能够通过公开Docker端口,以便您可以看到正在运行。

因为我很伤心,如果这些指令对你没有帮助,那么请阅读Docker和dockerizing spring引导应用程序的教程。

您应该使用docker-compose。管理版本和版本的最佳方法是为专用的码头图像创建自己的存储库(nexus就是一个例子)。

在泊坞窗,谱写你能描述你所有的基础设施,创建服务,网络连接服务,沟通等服务,让我觉得你应该走这条路创造好的发展思想和生产构建流程为您的microService应用

对于cassandra和其他已知的服务,您可以在https://hub.docker.com上找到首选图像。

在每个微服务中,您应该有Dockerfile,然后在解决方案的主目录中,您可以创建带有服务定义的docker-compose.yml文件。

您也可以在Docker容器中构建您的微服务。在谷歌阅读更多关于“使用docker的Java应用程序构建流程”。

所有关于码头工人组成,你可以在这里找到:https://docs.docker.com/compose/

所有关于码头工人群,你可以在这里找到:https://docs.docker.com/engine/swarm/