Docker(七):使用Dockerfile为Spring Boot应用构建Docker Image

一. 应用场景
    假设现在我们有一个单独的基于Spring Boot开发的应用,如何将其部署到Docker容器上,并能正确的访问到呢?这里有两种方式:

  1. 使用Maven插件(docker-maven-plugin)将Spring Boot应用打包为Docker Image,并上传到私有镜像仓库Docker Registry
  2. 使用Dockerfile为Spring Boot应用构建Docker Image
    其中,第1种方式需要依赖自建的Registry镜像仓库,而第2种方式不需要依赖自建的镜像仓库,只需要应用的jar包和一个Dockerfile文件即可。

二. 撸起袖子就是干

  1. 在src/main目录下新建docker/Dockerfile文件
    在这里插入图片描述

  2. 编写Dockfile

# 该镜像需要依赖的基础镜像
FROM java:8
# 将当前目录下的jar包复制到docker容器的/目录下
ADD spring-boot-study-0.0.1-SNAPSHOT.jar /spring-boot-study.jar
# 在容器构建过程中创建一个spring-boot-study.jar文件,可以用该命令自定义容器的行为,比如安装一些软件,创建一些文件等
RUN bash -c 'touch /spring-boot-study.jar'
# 声明服务运行在9527端口(只声明不会打开端口)
EXPOSE 9527
# 指定docker容器启动时运行jar包
ENTRYPOINT ["java", "-jar","/spring-boot-study.jar"]
# 指定维护者的名字
MAINTAINER wanghong
  1. Maven打包应用
    在项目根目录下,即pom.xml文件所在的目录,执行以下命令:
mvn clean package -P dev

或者在IDEA中直接双击 package命令:
在这里插入图片描述

  1. 将应用jar包及Dockerfile文件上传到Linux服务器

在这里插入图片描述

  1. 在Linux上构建docker镜像
    在Dockerfile所在目录执行以下命令:
# -t 表示指定镜像仓库名称/镜像名称:镜像标签 .表示使用当前目录下的Dockerfile
docker build -t hong/spring-boot-study:0.0.1-SNAPSHOT .

在这里插入图片描述

  1. 运行应用
docker run -p 9527:9527 --name spring-boot-study hong/spring-boot-study:0.0.1-SNAPSHOT

在这里插入图片描述

  1. 查看所有的容器
    在这里插入图片描述
  2. 如果中途有出错,删除镜像和容器
docker rmi -f 镜像ID
docker rm 容器ID

在这里插入图片描述

  1. 访问服务
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值