【问题标题】:How to run micro services using docker如何使用 docker 运行微服务
【发布时间】:2018-03-21 12:19:18
【问题描述】:

我是 Spring Boot 的新手。我需要创建微服务并且需要由 docker 运行。我在这里附上了我的项目结构。每次我需要手动启动微服务时都会出现问题。例如,我有 4 个微服务,而我只是手动启动了这些服务。但是所有微服务在部署到 docker 时都应该自己启动。如何实现这一点。

我也在使用 Cassandra 数据库。

【问题讨论】:

标签: docker spring-boot cassandra docker-compose microservices


【解决方案1】:

我不知道这是否是最好的解决方案,但它是我使用的一个: 先说spring boot maven插件创建一个可执行jar:

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

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

【讨论】:

    【解决方案2】:

    请查看现有的大量关于 Spring Boot 和 Docker 化此应用程序的教程。

    Here 解释了每一个必要的步骤

    1. 将应用程序构建为 Jar 文件
    2. 使用 Dockerfile 创建您的 docker 映像 在这个 dockerfile 中,您可以创建一个环境,就像您将拥有一个新的安装 linux 服务器一样,并定义运行应用程序所需的软件:如 java.util 。查看现有图片,例如 anapsix/alpine-java
    3. 现在想想你需要做什么才能在这个环境中启动你的应用程序:java -jar --some-options -location-of-your-jar.jar
    4. 确保能够通过暴露 docker 端口访问您的应用,以便您可以看到它正在运行。

    很遗憾,如果这些说明对您没有帮助,请阅读 docker 和 dockerizing spring boot 应用程序的教程。

    【讨论】:

      【解决方案3】:

      你应该使用 docker-compose。管理发布/版本和构建的最佳方法是为专用 docker 映像创建自己的存储库(nexus 就是一个示例)。

      在 docker-compose 中,您可以描述所有基础架构、创建服务、网络、连接服务以与其他服务通信,所以我认为您应该采用这种方式为您的微服务应用程序创建良好的开发和生产构建流程

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

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

      您也可以在 docker 容器中构建您的微服务。在 google 中阅读有关“使用 docker 构建 Java 应用程序流程”的更多信息。

      你可以在这里找到关于 docker compose 的所有信息:https://docs.docker.com/compose/

      你可以在这里找到关于 docker swarm 的所有信息:https://docs.docker.com/engine/swarm/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-07-12
        • 2016-07-08
        • 2018-10-19
        • 2018-12-27
        • 1970-01-01
        • 1970-01-01
        • 2020-09-14
        • 2021-02-07
        相关资源
        最近更新 更多