怎么在SpringBoot和Docker中部署微服务

这篇文章将为大家详细讲解有关怎么在Spring Boot和Docker中部署微服务,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。

创新互联-云计算及IDC服务提供商,涵盖公有云、IDC机房租用、乐山服务器托管、等保安全、私有云建设等企业级互联网基础服务,服务热线:18980820575

创建 Spring boot 项目

1、添加 application.yml 配置文件

server:
 port: 7000
spring:
 application:
  name: spring-boot-docker-sample

2、创建项目启动文件

@SpringBootApplication
public class Application {

  public static void main(String[] args){
    SpringApplication.run(Application.class, args);
  }
}

3、添加一个 RestController 用于服务是否正常可用

@RestController
public class DockerController {

  @GetMapping(value = "hello")
  public Object sayHello(){
    return "hello! spring boot with docker.";
  }
}

之后启动服务,访问 localhost:7000/hello 查看,如果正常访问,则进入下一步操作。

利用 maven 插件生成镜像文件

我们这里用到的 Maven 插件是  dockerfile-maven-plugin

1、在 pom 文件中添加上述插件依赖


  org.springframework.boot
  spring-boot-maven-plugin


  com.spotify
  dockerfile-maven-plugin
  1.4.9
  
    
      tag-latest
      deploy
      
        build
        tag
        push
      
      
        latest
      
    
    
      tag-version
      deploy
      
        build
        tag
        push
      
      
        ${project.version}
      
    
  
  

2、这个 maven 插件是依赖于 Dockerfile 文件的,所以使用命令之前需要先手动创建 Dockerfile 文件,注意这个 Dockerfile 文件要和 pom.xml 文件同级,简单的 Dockerfile 内容如下:

FROM openjdk:8-jdk-alpine
VOLUME /tmp
COPY target/docker-sample-1.0-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

简单解释一下:

  • 先从中央仓库或者你配置的代理仓库(如阿里云镜像仓库)拉取 openjdk 镜像;

  • 然后设置一个挂载点;

  • 拷贝 target 目录下的 Spring boot 项目运行包,并改名为 app.jar;

  • 设置启动命令 java -jar app.jar

3、然后使用命令  sudo mvn package dockerfile:build  就可以生成镜像到本地仓库了,生成后的镜像如下:

怎么在Spring Boot和Docker中部署微服务

这一步翻译为 docker 命令的话就是下面两条:

docker build -t registry.cn-beijing.aliyuncs.com/fengzheng/kite:1.0-SNAPSHOT . 
docker build -t registry.cn-beijing.aliyuncs.com/fengzheng/kite:latest

4、之后根据生成的镜像,就可以以 docker 方式启动服务了

docker run -d -p 7000:7000 registry.cn-beijing.aliyuncs.com/fengzheng/kite:latest

将镜像推送到阿里云 docker 仓库

访问 https://dev.aliyun.com/search.html,然后随意输入一个镜像名称,例如 redis,如果你没有注册过,阿里云便会调到登录注册页,之后按照提示注册即可。

注册成功后,到镜像管理界面,会提示你输入镜像仓库服务的密码,也就是下方配置文件中的 Registry登录密码。

注册成功后,设置一个命名空间,并在命名空间下新建一个仓库。例如本例中我设置的命名空间是 fengzheng ,仓库名称为  kite 。

之后,在 pom.xml 文件中 plugin 节点增加如下配置:


    阿里云账号名
    
    Registry登录密码
    
    registry.cn-beijing.aliyuncs.com/fengzheng/kite
    latest
           
      ${project.build.finalName}.jar
    

设置好用户名和密码,仓库地址等参数,因为是私有仓库,所以需要用户名和密码。

然后运行命令,将以  latest  和  ${project.version}  为 tag 的镜像推送到阿里云镜像仓库。

sudo mvn dockerfile:push

或者,运行命令,发布某一个指定 tag 的镜像。

sudo mvn dockerfile:push@tag-version

sudo mvn dockerfile:push@tag-latest

springboot是什么

springboot一种全新的编程规范,其设计目的是用来简化新Spring应用的初始搭建以及开发过程,SpringBoot也是一个服务于框架的框架,服务范围是简化配置文件。

关于怎么在Spring Boot和Docker中部署微服务就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。


当前题目:怎么在SpringBoot和Docker中部署微服务
文章路径:http://myzitong.com/article/gjgcdp.html