目的:让spring boot项目在docker 运行起来
前提:linux 安装docker
步骤:
一:创建spring boot 项目并打包为jar包
可以在pom 文件中加上
<!-- 版本 -->
<groupId>com.example</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>demo</name>
<packaging>jar</packaging>--打包jar
<description>Demo project for Spring Boot</description>
二:编写Dockerfile文件
# 基础镜像使用java,会默认拉取镜像
FROM java:8
# 使用人
MAINTAINER eangulee <1094121819@qq.com>
# VOLUME 指定了临时文件目录为/tmp,在/var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp,/tmp目录用来持久化到 Docker 数据文件夹,spring boot 使用的内嵌 Tomcat 容器默认使用/tmp作为工作目录
VOLUME /tmp
# 将jar包添加到容器中并更名为app.jar,demo-0.0.1-SNAPSHOT.jar是spring boot 项目中定义的
ADD demo-0.0.1-SNAPSHOT.jar app.jar
# 运行jar包,指定运行时的参数
RUN bash -c 'touch /app.jar'
# ENTRYPOINT 执行运行 系统属性 /dev/./urandom
ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
三:部署项目
在linux中新建一个目录存放创建的spring boot jar 和 Dockerfile 文件,并在该目录下执行以下命令
# 制作镜像根据Dockerfile生成,-t 参数是指定此镜像的tag名,后面的 . 当前目录
docker build -t demoSpringDocker .
# 查看制作的镜像
docker images
# 启动容器,-d 参数是让容器后台运行 ,-p 做端口映射,将服务器中的8080端口映射到容器中的8087(spring boot 端口配置的是8087)
docker run -d -p 8080:8087 demoSpringDocker
四、访问网页
查看部署情况: http://服务器地址:8080/