微服务应用

Docker 部署 SpringBoot(六)

2019-06-22  本文已影响0人  lconcise

Docker 简介

Docker 官方这么解释自己:

Seamlessly build and share any application — from legacy to what comes next — and securely run them anywhere.

无缝地构建和共享任何应用程序(从遗留到下一个应用程序),并安全地在任何地方运行它们。

Docker 是一个开源的应用容器引擎,基于Go 语言并遵从Apache2.0协议开源。
Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。
容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。

一个简单的SpringBoot项目

使用spingBoot官方https://start.spring.io/,创建一个简单SpringBoot项目,添加web依赖。

image.png

创建一个简单访问:

@SpringBootApplication
@RestController
public class Application {

    @RequestMapping("/")
    public String home() {
        return "Hello Docker World";
    }

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

}

到这里一个简单SpringBoot项目完成,有疑问可以参考我的一篇文章springboot(一):Hello word

SpringBoot项目添加Docker支持

在pom.xml 文件中添加Docker镜像名称

    <properties>
        <docker.image.prefix>lconcise</docker.image.prefix>
    </properties>

plugins中添加Docker构建插件

            <!-- Docker maven plugin -->
            <plugin>
                <groupId>com.spotify</groupId>
                <artifactId>docker-maven-plugin</artifactId>
                <configuration>
                    <imageName>${docker.image.prefix}/${project.artifactId}</imageName>
                    <dockerDirectory>src/main/docker</dockerDirectory>
                    <resources>
                        <resource>
                            <targetPath>/</targetPath>
                            <directory>${project.build.directory}</directory>
                            <include>${project.build.finalName}.jar</include>
                        </resource>
                    </resources>
                </configuration>
            </plugin>

在目录src/main/docker下创建 Dockerfile 文件,Dockerfile 文件用来说明如何来构建镜像。

FROM openjdk:8-jdk-alpine
VOLUME /tmp
ADD docker-demo-0.0.1-SNAPSHOT.jar app.jar
ENTRYPOINT ["java","-jar","/app.jar"]

这个 Dockerfile 文件很简单,构建 Jdk 基础环境,添加 Spring Boot Jar 到镜像中,简单解释一下:

切记:镜像名称全部为小写

到此,SpringBoot添加Docker依赖就完成了。

Docker部署项目

打包

把新建的项目拷贝到服务器上,进入项目路径下进行打包

mvn package

构建Docker镜像

mvn docker:build

构建成功如下图


image.png

镜像构建成功。通过docker images查看镜像:

image.png

lconcise/docker-demo 就是我们构建好的镜像。

启动镜像

docker run -p 8080:8080 -t lconcise/docker-demo

-p表示端口映射,冒号左边为docker容器外的端口号,右边为容器内的端口号。
8080:8080意思是将docker容器的8080端口映射到服务器上的8080端口。

查看运行镜像

docker ps

源码地址:https://github.com/lbshold/springboot/tree/master/Spring-Boot-Docker


SpringBoot和Docker 结合 官方文档 https://spring.io/guides/gs/spring-boot-docker/

上一篇下一篇

猜你喜欢

热点阅读