本文介绍一下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项目了。