超级小白超级简单之springboot项目打包成docker镜像并且运行

准备工作

  1. 一个打包好的项目jar包
  2. 一个编写好的Dockerfile文件
  3. 当然,打包成docker环境就必须有一个docker环境啦,这里我的docker环境是放在centos中的

项目打jar包

这里我用的是idea,所以我这里说idea的项目打包方法

mvn clean package # 使用Maven打包项目

image.png
这里我打好的jar包被我重命名为gclient.jar

编写Dockerfile文件

这里我是这样编写的

# 基于哪个镜像,需要用一个已有的镜像做载体来创建,这里我使用的java8镜像,如果大家的docker镜像中没有java8,它就会自动去下载
FROM java:8

# 将本地文件夹挂载到当前容器,指定/tmp目录并持久化到Docker数据文件夹,因为Spring Boot使用的内嵌Tomcat容器默认使用/tmp作为工作目录
VOLUME /tmp

# 添加自己的项目到 app.jar中   这里我是取了app.jar的名字,这个名字可以随便取的,只要后面几行名字和这个统一就好了
ADD gclient.jar app.jar
# 这一行我还是不太清楚啥意思 等我懂了我再补上
RUN bash -c 'touch /app.jar'

# 开放8761端口
EXPOSE 8761

# ENTRYPOINT指定容器运行后默认执行的命令
ENTRYPOINT ["java","-jar","/app.jar"]
#"-Djava.security.egd=file:/dev/./urandom"  这个我不知道是啥意思,这里我就去掉了

好Dockerfile编写也完成了

改成这个镜像体积会变得更小,不过我没试过,有兴趣的可以试一试
FROM docker.io/jeanblanchard/alpine-glibc

把Dockerfile和gclient.jar放在同一个目录下面

这里我把这两个文件都放在了我的虚拟机下面的rpa文件夹下
image.png

创建镜像

在这个目录下运行命令

docker build -t gclient .

这里注意,gclient只是我要起的一个名字,大家创建的时候名字可以随便写的好吧,上面的.我没有写错啊和创建的镜像的名字有一个空格的距离。
image.png
创建好的截图如上

运行容器

上面的Dockerfile中我写了我要开放的端口8761,但是我这个项目启动的时候要访问8080端口,所以我要运行这个容器就要这样写

docker run -p 8761:8080 -d gclient

启动成功,这里-d就是以守护进程的方式运行,如果不加的话,就会出现如我下图显示的东西一样,这个时候按crtl + c就可以结束,所以加上-d
image.png

看docker容器日志我常用的两种方法

docker logs -f --tail 500 容器id 实时倒数500行日志,这个很实用
docker logs --since 5m 容器id容器倒数五分钟内的日志

你可能感兴趣的:(dockerfile,docker,springboot,java)