美文网首页Docker
Docker打包SpringBoot为镜像

Docker打包SpringBoot为镜像

作者: 溯水心生 | 来源:发表于2018-11-08 11:28 被阅读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一些参数和设置

    • 配置镜像加速,通过阿里云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
         <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

    相关文章

      网友评论

        本文标题:Docker打包SpringBoot为镜像

        本文链接:https://www.haomeiwen.com/subject/ymoixqtx.html