本文介绍一下docker如何部署springboot项目。

前提条件:

1.可以运行jar包的环境
2.机器上已经安装了docker
3.准备部署的springboot的jar包
4.Dockerfile文件

准备Dockerfile

前三条都很容准备,创建一个Dockerfile:

# Docker image for springboot file run
# VERSION 0.0.1
# Author: eangulee# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER leixiaotian <1124378213@qq.com>
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp 
# 将jar包添加到容器中并更名为app.jar
ADD springboot-0.0.1-SNAPSHOT.jar app.jar 
# 运行jar包
RUN bash -c 'touch /app.jar'
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]

解释一下需要注意的地方

1.java:8 是使用jdk版本
2.springboot-0.0.1-SNAPSHOT.jar是使用jar包名称
3.ADD springboot-0.0.1-SNAPSHOT.jar /app.jar 拷贝jar到容器
4.ENTRYPOINT 执行jar文件

VOLUME 指定了临时文件目录为/tmp。其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp。改步骤是可选的,如果涉及到文件系统的应用就很有必要了。/tmp目录用来持久化到 Docker 数据文件夹,因为 Spring Boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录
项目的 jar 文件作为 “app.jar” 添加到容器的
ENTRYPOINT 执行项目 app.jar。为了缩短 Tomcat 启动时间,添加一个系统属性指向 “/dev/./urandom” 作为 Entropy Source

如果是第一次打包,它会自动下载java 8的镜像作为基础镜像,以后再制作镜像的时候就不会再下载了。

生成Docker镜像

将Dockerfile和jar放在一个文件夹,使用下面命令生成镜像,注意最后的.

docker build -t springboot-blog .

注意:springboot-blog是生成的镜像名称。

查看一下docker镜像

docker images

如图,可以看到已经有了一个名称为springboot-blog的镜像

雷小天博客

运行Docker容器

代码如下

docker run -d -p 8081:8081 springboot-blog

解释一下需要注意的地方

1.-d 后台运行
2.-p 8081:8081 将docker容器的8081端口映射到服务器上的8081端口

到这里就配置完成了,在浏览器使用:服务器ip:8081就能访问docker容器内部署的springboot项目了。