Docker - 部署Java SpringBoot应用程序

Docker - 部署Java SpringBoot应用程序

 

 

第一步:首先得有一个spring boot的项目 

第二步:项目打包为jar包,先clean清理,再package打包

 

 

 

 

找到项目根目录下的target目录,这里面的jar就是打包好可以部署的jar包

 

 

 

 

 创建编写Dockerfile文件:

 

 

# Docker image for springboot file run
# VERSION 0.0.1
# Author: 无心菜
# 基础镜像使用java
FROM java:8
# 作者
MAINTAINER 无心菜
# VOLUME 指定了临时文件目录为/tmp。
# 其效果是在主机 /var/lib/docker 目录下创建了一个临时文件,并链接到容器的/tmp
VOLUME /tmp 
# 将jar包添加到容器中并更名为app.jar
ADD recordboot-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"]

 

 

解释下这个配置文件:

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的镜像作为基础镜像,以后再制作镜像的时候就不会再下载了。

 

部署文件 

 在服务器 /opt 目录下 创建 myProject 文件夹,将maven打包好的jar包和Dockerfile文件复制到服务器的docker文件夹下(可用WinSCP软件可视化操作)

mkdir myProject

 

 在myProject项目下,创建项目对应文件夹 recordboot 

mkdir recordboot

 

  

 

 

 

 

 

 制作镜像

进入recordboot目录,执行下面命令, 看好,最后面有个"."点! 

-t 参数是指定此镜像的tag名 

docker build -t recordboot .

 

 

 

 

 

制作完成后通过docker images命令查看我们制作的镜像

  

 

 

 

 

 

启动容器

docker run --name recordroom -d --restart=always -p 8096:8095 recordboot 

 

-d参数是让容器后台运行 
-p 是做端口映射,此时将服务器中的8096端口映射到容器中的8095(项目中端口配置的是8095)端口

 

通过--restart选项,可以设置容器的重启策略,以决定在容器退出时Docker守护进程是否重启刚刚退出的容器。

--restart选项通常只用于detached模式的容器。

--restart选项不能与--rm选项同时使用。显然,--restart选项适用于detached模式的容器,而--rm选项适用于foreground模式的容器。

在docker ps查看容器时,对于使用了--restart选项的容器,其可能的状态只有Up或Restarting两种状态。

示例:
docker run -d --restart=always ba-208
docker run -d --restart=on-failure:10 ba-208

 

 

访问服务器网站:http://192.168.3.130:8096/Hello/Get

 

 

 

Docker 进入容器命令:

docker exec -it 775c7c9ee1e1 /bin/bash 

 

 

 

 

 

 

引用:https://www.jianshu.com/p/397929dbc27d

 

posted @ 2020-03-05 19:34  无心々菜  阅读(603)  评论(0编辑  收藏  举报