使用Dockerfile为SpringBoot应用构建Docker镜像

使用Dockerfile为SpringBoot应用构建Docker镜像

树冢
2021-03-05 / 0 评论 / 27 阅读 / 正在检测是否收录...

通过docker-maven-plugin来构建docker镜像的方式,此种方式需要依赖自建的Registry镜像仓库。本文将讲述另一种方式,使用Dockerfile来构建docker镜像,此种方式不需要依赖自建的镜像仓库,只需要应用的jar包和一个Dockerfile文件即可。

1.Dockerfile常用指令

ADD
用于复制文件,格式:
ADD <src> <dest>
示例:

# 将当前目录下的mall-tiny-docker-file.jar包复制到docker容器的/目录下
ADD mall-tiny-docker-file.jar /mall-tiny-docker-file.jar

ENTRYPOINT
指定docker容器启动时执行的命令,格式:
ENTRYPOINT ["executable", "param1","param2"...]
示例:

# 指定docker容器启动时运行jar包
ENTRYPOINT ["java", "-jar","/mall-tiny-docker-file.jar"]

ENV
用于设置环境变量,格式:
ENV <key> <value>
示例:

# mysql运行时设置root密码
ENV MYSQL_ROOT_PASSWORD root

EXPOSE
声明需要暴露的端口(只声明不会打开端口),格式:
EXPOSE <port1> <port2> ...
示例:

# 声明服务运行在8080端口
EXPOSE 8080

FROM
指定所需依赖的基础镜像,格式:
FROM <image>:<tag>
示例:

# 该镜像需要依赖的java8的镜像
FROM java:8

MAINTAINER
指定维护者的名字,格式:
MAINTAINER <name>
示例:

MAINTAINER bdysoft

RUN
在容器构建过程中执行的命令,我们可以用该命令自定义容器的行为,比如安装一些软件,创建一些文件等,格式:
RUN <command>
RUN ["executable", "param1","param2"...]
示例:

# 在容器构建过程中需要在/目录下创建一个mall-tiny-docker-file.jar文件
RUN bash -c 'touch /mall-tiny-docker-file.jar'

2.使用Dockerfile构建SpringBoot应用镜像

编写Dockerfile文件

# 该镜像需要依赖的基础镜像
FROM java:8
# 将当前目录下的jar包复制到docker容器的/目录下
ADD mall-tiny-docker-file-0.0.1-SNAPSHOT.jar /mall-tiny-docker-file.jar
# 运行过程中创建一个mall-tiny-docker-file.jar文件
RUN bash -c 'touch /mall-tiny-docker-file.jar'
# 声明服务运行在8080端口
EXPOSE 8080
# 指定docker容器启动时运行jar包
ENTRYPOINT ["java", "-jar","/mall-tiny-docker-file.jar"]
# 指定维护者的名字
MAINTAINER macrozheng

3.使用maven打包应用

在IDEA中双击package命令进行打包
将应用jar包及Dockerfile文件上传到linux服务器

4.在Linux上构建docker镜像

在Dockerfile所在目录执行以下命令

# -t 表示指定镜像仓库名称/镜像名称:镜像标签 .表示使用当前目录下的Dockerfile
docker build -t mall-tiny/mall-tiny-docker-file:0.0.1-SNAPSHOT .
0

评论

博主关闭了当前页面的评论
百大云