Springboot 生成docker image

Posted System.print("宇航")

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Springboot 生成docker image相关的知识,希望对你有一定的参考价值。

前段日子搭建了一个kubenetes集群,kubenetes是需要载入docker image来运行应用的。

我使用的是Springboot框架,因此向大家分享一下Springboot生成docker image的一个方法。不对的地方请指教~

一、Springboot生成jar包

  docker image生成需要用到项目build生成的jar包,因此第一步你需要生成一个jar包。maven项目,命令是:

 

mvn clean package

 

  

二、Dockerfile

  1、jar生成完毕后,需要创建一个Dockerfile文件(文本类型的)来生成docker image。我的Dockerfile如下:

FROM openjdk:8
LABEL app="blogtest" version="0.0.1"
ADD Blog-0.0.1-SNAPSHOT.jar app.jar
CMD java -jar app.jar

    FROM : 制定基础镜像;

    VOLUME :挂载一个目录到主机目录

    LABLE : 用于为镜像添加元数据,元数以键值对的形式指定

    ADD : 用于复制构建环境中的文件或目录到镜像中, 如果使用的是本地归档文件(gzipbzip2xz)时,Docker会自动进行解包操作,类似使用tar -x.

    CMD : 用于指定在容器启动时所要执行的命令

    再具体的各种Dockerfile相关命令,可以查看 https://itbilu.com/linux/docker/VyhM5wPuz.html#cmd-cmd

  2、Dockerfile写完了,接下来就是命令运行Dockerfile来build docker image,命令如下:

docker build -t test --force-rm .

      --force-rm : 始终移除中间容器

    可以使用下面的命令查看docker image是都创建成功:

docker images

  3、最后,在本地试试docker build出来的image 是否可以跑起来,下面的run命令:

docker run --name ContainerName -p 8888:8888 -d test

    --name :为容器指定一个名称

    -p :  端口映射,格式为:主机(宿主)端口:容器端口

    -d : 后台运行容器,并返回容器ID

    还有其他docker run的命令:可以查看 http://www.runoob.com/docker/docker-run-command.html


以上是关于Springboot 生成docker image的主要内容,如果未能解决你的问题,请参考以下文章

springboot项目构建docker image镜像

springboot项目构建docker image镜像

springboot与docker

如何从 buildpack 生成的 docker 映像中禁用内存计算器

本地Docker部署SpringBoot项目

Docker三要素