Docker这项容器技术已经是十分的火热了,读者要是不了解docker的话可以吧docker先理解为虚拟机。
我们的Springboot最终是要部署在Linux上的,docker作为Linux轻量级的实现。docker也是可以用来部署Springboot应用的。
Springboot程序本人以Spring官网的demo为例。

地址是: https://spring.io/guides/gs/spring-boot-docker/

当然读者也可以直接git clone https://spring.io/guides/gs/spring-boot-docker/

首先我们进入demo的complete 目录
下运行命令,mvn package && java -jar target/gs-spring-boot-docker-0.1.0.jar

这个命令是将demo打包并且运行。在浏览器输入localhost:8080就可以访问项目里,此时的Springboot应用是部署在自己的操作系统上的。
我们按下Ctrl+C关闭掉Spring boot应用程序。

接下来我们来到src/main/docker目录下,有个关键性的配置文件Dockerfile

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD gs-spring-boot-docker-0.1.0.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" ]

这个文件是用来生成docker镜像的

打开我们的maven的pom.xml文件,里面有一个插件


<plugins>
        <plugin>
            <groupId>com.spotify</groupId>
            <artifactId>docker-maven-plugin</artifactId>
            <version>0.4.11</version>
            <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>
    </plugins>

运行命令

$ mvn package docker:build 

最后运行命令

docker run -p 8080:8080 -t springio/gs-spring-boot-docker

再在浏览器中输入localhost:8080即可访问在docker容器中运行的Spring boot应用

最后对外发布app的时候docker可以自动化发布到任何一台流行的Linux服务器上

Logo

更多推荐