Docker

Docker打包SpringBoot为镜像

2018-11-08  本文已影响84人  溯水心生

[TOC]

一、Docker镜像制作介绍

Docker

Docker是一个具有社區性的Linux容器管理工具集,它允許用户发布镜像或者使用其他开发者发布的镜像。Docker镜像本質上是一个進程的运行環境。在這篇guide中,我們将构建一个運行Spring Boot应用程序的鏡像。

二、镜像打包前提条件

1.镜像打包条件

要完全构建一个可用的SpringBoot Docker镜像,需要满足一下条件:
1.打包环境已经Docker服务,可通过一下命令查看docker环境和状态:

docker  info  # docker环境信息
docker version # docker版本信息

本例是在win10安装docker服务。

2.配置docker一些参数和设置

三、打包镜像

1.增加DockerFile文件

SpringBoot项目结构如下:


image

2.配置内容

Dockerfile 文件内容如下:

FROM frolvlad/alpine-oraclejdk8:slim
VOLUME /tmp
ADD yxy-pretreatment.jar app.jar
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

现将内容解释如下:

第一行增加了SpringBoot运行的JDK环境,我们增加了一个VOLUME指向”/tmp”,因为那是Spring Boot应用程序为Tomcat创建的默认工作目录。作用是在你的主机”/var/lib/docker”目录下创建一个临时的文件,并且链接到容器中的”/tmp”目录。对于简单程序这一步是可选的,但是对于其他想要真实写入文件系统的Spring Boot应用程序又是必选的。

第三行,yxy-pretreatment.jar为你SpringBoot打包最终的成包名称,别名为app.jar

第四行,ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/urandom” 作为 Entropy Source

3.Pom增加docker插件

修改SpirngBoot项目的Pom文件,增加docker集成插件,如下图所示:


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

4.进行docker镜像构建

项目文件夹下,利用mvn命令进行镜像构建:


image

执行构建命令:

mvn clean package docker:build
构建完成

如图所示构建成功了。


镜像列表

四、运行镜像

现在我们把镜像通过容器实例跑起来。
执行如下命令:

docker run -d  -p 8081:881 yxy-pretreatment/ctyxy-pretreatment

截图所示:


image
上一篇下一篇

猜你喜欢

热点阅读