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

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

1.编写Dockerfile文件

在工程src的同级目录下新建一个Dockerfile文件
在这里插入图片描述
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 .

下图表示编译成功
在这里插入图片描述
使用下面的命令将新建的docker镜像运行起来

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

二、镜像上传DockerHub

1.新建仓库

在dockerhub中新建一个仓库
在这里插入图片描述

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
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
打包全部镜像,你可以使用Docker的build命令来构建每个镜像。首先,你需要在每个镜像的目录下创建一个Dockerfile文件,该文件定义了构建镜像的步骤和配置。然后,你可以使用以下命令来构建每个镜像docker build -t 镜像名:版本号 -f Dockerfile . 其中,镜像名可以根据你的需求进行命名,版本号可以根据你的需要进行指定。这个命令会在当前目录下执行构建命令,并将构建好的镜像打上指定的标签。你可以根据需要重复执行这个命令来构建多个镜像。 请注意,每个镜像的目录下都需要有一个对应的Dockerfile文件,并且在构建命令中指定正确的文件路径和标签。另外,构建镜像可能需要一些时间,具体时间取决于镜像的大小和复杂度。 引用内容: \[2\] 文章目录 linux下jdk的安装和docker打包运行镜像1、jdk安装添加下面内容 2、nohup安装2.1、创建springboot项目2.2、IDEA+Spring Cloud+Maven模块化项目打包 3、服务器后台启动java项目linux下win下 4、docker构建并运行镜像4.1、编写Dockerfile4.2、docker构建镜像4.3、运行镜像4.4、访问应用4.5、查看容器运行日志4.6、firewall防火墙开放端口 删除docker镜像5、分享镜像5.1、登录docker.hub仓库5.2、重命名5.3、推送镜像docker.hub仓库5.6、下载镜像 \[3\] 注意: -t 全称为 -tag docker build -t java-demo:v1.0 -f Dockerfile -f Dockerfile可以省略java-demo:v1.0任意可以取名末尾的" . "表示在当前目录执行build命令 #用这个 docker build -t java-demo:v1.0 . #### 引用[.reference_title] - *1* *2* *3* [linux下jdk的安装和docker打包运行镜像](https://blog.csdn.net/qq_45754447/article/details/126928357)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值