Docker打包SpringBoot镜像的实现方式
作者:五敷有你
docker打包springboot镜像,并不是简单的将springboot项目的jar包上传容器里,然后启动,这个操作很简单,但是如果我每次要查看容器中的日志就需要每次都进入容器内部进行查看,这就非常麻烦了,所以本文介绍了Docker打包SpringBoot镜像的实现方式,需要的朋友可以参考下
前置说明
- 最为原始的打包方式
spring-boot-maven-plugin
插件jib-maven-plugin
插件dockerfle-maven-plugin
插件
最为原始的方式
也就是使用
Docker
的打包命令去打包,麻烦,我这里不多说。
SpringBoot打包镜像
Dockerfile是什么
构建容器服务四步骤:
- 编写Dockerfile
- docker build 构建镜像
- docker run 镜像
- docker push 镜像
第一步是编写Dockerfile ,Dockerfile 是我们打docker 镜像的脚手架,也就是我们说的docker镜像,就是根据Dockerfile来打开的。(名称必须是这个,区分大小写)
简单看一下Dockerfile的内容
FROM openjdk:8 COPY *.jar /app.jar CMD ["--server.port=8080"] EXPOSE 8080 ENTRYPOINT ["java","-jar","/app.jar"]
可以看到,Dockerfile是由很多指令来组成,比如说FROM,COPY (一般情况话,我们的指令都是大写的,虽然小写的也不会报错,但是这是约定俗称的DockeFile中的指令都是大写的)
Dockerfile常见指令
1.FROM
FROM openjdk:8
指定基础镜像,用于构建当前镜像的基础。也就是说我们要打镜像的基础包,我们程序运行所需要的环境,比如说SpringBoot运行需要Java8,那就是在JDK8的基础上构建自己的镜像。
2.COPY/ADD
COPY *.jar /app.jar
将文件从主机复制到镜像中
3.CMD
CMD ["--server.port=8080"]
指定容器创建时的默认命令。(可以被覆盖)
4.EXPOSE
EXPOSE 8080
声明容器运行时监听的特定网络端口。
5.ENTRYPOINT
ENTRYPOINT ["java","-jar","/app.jar"]
设置容器创建时的主要命令。(不可被覆盖)
构建镜像
文件位置
当Dockerfile文件编写完成后,与需要打成镜像的jar包放到统一目录下。
docker bulid
docker build -t test:1.0.1 .
即镜像包的名称为test,版本号为1.0.1。如果不写后面的版本号,则版本号默认为latest。
(注意命令最后有一个 . ,必须要有这个参数)
启动镜像
docker run -d test
查看实例
docker ps -a
到此这篇关于Docker打包SpringBoot镜像的实现方式的文章就介绍到这了,更多相关Docker打包SpringBoot镜像内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!