Docker打包SpringBoot为镜像

[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一些参数和设置

  • 配置镜像加速,通过阿里云docker地址:https://dev.aliyun.com/search.html
    访问管理中心,查看自己的镜像地址:
    image

    复制镜像加速地址,打开docker 设置菜单 settings
    image

    在Daemon菜单,打开Advaced滑块,将自己的加速地址填入。
  • 配置普通参数信息,代开端口2375
    在General菜单,打开2375选项,如图所示:


    image
  • 配置镜像存储目录:
    避免C盘系统盘过度占用,更改镜像存放目录,如图所示:


    image

三、打包镜像

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
     
                com.spotify
                docker-maven-plugin
                0.4.13
                
                    ${docker.image.prefix}/${project.artifactId}
                    src/main/docker
                    
                        
                            /
                            ${project.build.directory}
                            ${project.build.finalName}.jar
                        
                    
                
            

4.进行docker镜像构建

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


image

执行构建命令:

mvn clean package docker:build
构建完成

如图所示构建成功了。


镜像列表

四、运行镜像

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

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

截图所示:


image

你可能感兴趣的:(Docker打包SpringBoot为镜像)