第十篇 : SpringBoot 整合 docker

文章首发于微信公众号《程序员果果》
地址:https://mp.weixin.qq.com/s/IWDpC9i8P3ZDFDYTsKARag

一、什么是docker ?

简介

Docker是一个开源的引擎,可以轻松的为任何应用创建一个轻量级的、可移植的、自给自足的容器。开发者在笔记本上编译测试通过的容器可以批量地在生产环境中部署,包括VMs(虚拟机)、bare metal、OpenStack 集群和其他的基础应用平台。

docker的应用场景

  • web应用的自动化打包和发布;
  • 自动化测试和持续集成、发布;
  • 在服务型环境中部署和调整数据库或其他的后台应用;
  • 从头编译或者扩展现有的OpenShift或Cloud Foundry平台来搭建自己的PaaS环境。

对于docker的使用,我后期会开专题详细讲解

二、整合 docker

创建工程

创建一个springboot工程springboot-docker

1. 启动类

package com.gf;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class SpringbootDockerApplication {

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

    @GetMapping("/{name}")
    public String hi(@PathVariable(value = "name") String name) {
        return "hi , " + name;
    }


}

2. 将springboot工程容器化

我们编写一个Dockerfile来定制镜像,在src/main/resources/docker 下创建Dockerfile文件

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD springboot-docker-0.0.1-SNAPSHOT.jar app.jar
RUN sh -c 'touch /app.jar'
ENV JAVA_OPTS=""
ENTRYPOINT [ "sh", "-c", "java $JAVA_OPTS -Djava.security.egd=file:/dev/./urandom -jar /app.jar" ]

3. pom.xml

我们通过maven 构建docker镜像。
在maven的pom目录,加上docker镜像构建的插件



    4.0.0
    
        org.springframework.boot
        spring-boot-starter-parent
        2.1.1.RELEASE
         
    
    com.gf
    springboot-docker
    0.0.1-SNAPSHOT
    jar
    springboot-docker
    Demo project for Spring Boot

    
        UTF-8
        UTF-8
        1.8
        gf
    

    
        
            org.springframework.boot
            spring-boot-starter-web
        

        
            org.springframework.boot
            spring-boot-starter-test
            test
        
    



    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
            
                com.spotify
                docker-maven-plugin
                1.2.0
                
                    ${docker.image.prefix}/${project.artifactId}
                    src/main/resources/docker
                    
                        
                            /
                            ${project.build.directory}
                            ${project.build.finalName}.jar
                        
                    
                
            
        
    



构建镜像

我们运行下面的命令构建镜像:

mvn clean
mvn package docker:bulid

构建成功后,我们通过下面的命令查看镜像:

docker images

启动镜像:

#c2dba352c3c1 为镜像ID
docker run -p 8080:8080 -t c2dba352c3c1

之后我们就可以访问服务了。

源码下载:https://github.com/gf-huanchupk/SpringBootLearning

第十篇 : SpringBoot 整合 docker_第1张图片

你可能感兴趣的:(第十篇 : SpringBoot 整合 docker)