如何将SpringBoot应用打包成Docker镜像并上传DockerHub

一、将SpringBoot应用打包成Docker应用

1.编写Dockerfile文件

在工程src的同级目录下新建一个Dockerfile文件
如何将SpringBoot应用打包成Docker镜像并上传DockerHub_第1张图片
Dockerfile文件的内容为

#设置镜像使用的基础镜像 这里使用的是oracle jdk8
FROM java:8
#设置镜像暴露的端口 这里要与application.properties中的server.port保持一致
EXPOSE 8085
#设置容器的挂载卷
VOLUME /tmp
#编译镜像时将springboot生成的jar文件复制到镜像中
ADD drone-manager-control-service-1.2.7.jar  /app.jar
#编译镜像时运行脚本
RUN bash -c 'touch /app.jar'
#容器的入口程序,这里注意如果要指定外部配置文件需要使用-spring.config.location指定配置文件存放目录
ENTRYPOINT ["java","-jar","/app.jar","--spring.config.location=/home/application.properties"]

2.将SpringBoot编译成jar包

在控制台使用如下命令,就会在工程的target目录下生成项目对应的jar包

mvn clean package

3.将jar包编译成docker镜像,并运行

将Dockerfile,application.properties,jar包上传到服务器上,在文件所在的目录下运行下面的命令,对jar包进行编译

[root@localhost home]# docker build -f Dockerfile -t drone:v1.0 .

下图表示编译成功
如何将SpringBoot应用打包成Docker镜像并上传DockerHub_第2张图片
使用下面的命令将新建的docker镜像运行起来

docker run -p 8085:8085 --name=drone drone:v1.0

二、镜像上传DockerHub

1.新建仓库

在dockerhub中新建一个仓库
如何将SpringBoot应用打包成Docker镜像并上传DockerHub_第3张图片

2.上传docker镜像

#在服务器上登录自己的dockerhub账号
docker login --username=*** --password=***
#给镜像修改名字必须用如下格式,版本号需要数字开头或者用latest
docker tag <IMAGE ID> <用户名>/<仓库名>:<版本号>
#上传docker镜像
docker push <用户名>/<仓库名>:<版本号>

三、修改容器的配置文件

在启动容器的时候需要将配置文件挂载出来

docker run -d -p 8085:8085 -v /tmp/conf:/home --name drone drone:v1.0

如果需要修改SpringBoot应用的配置文件,就将/tmp/conf/application.properties修改成需要的配置文件,然后重启docker,即可生效

docker restart drone

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