Dockerfile构建Springboot工程镜像并运行(命令详解)

开篇

近期,由于项目要多点部署,要求可移植程度高,所以我考虑将springboot工程构建成docker镜像,和其他依赖服务一起,使用docker-compose进行编排移植部署。这样可以省去安装各种依赖环境的烦恼,大大提高移植效率。

dockerfile详解

直接上代码,dockerfile位于工程根目录下,我会在里面逐行注释方便大家读懂。

#使用openjdk:8u302-jre作为基础镜像来构建,dockerfile必须以from开头
FROM openjdk:8u302-jre
#标记镜像的时区
RUN echo "Asia/Shanghai" > /etc/timezone
#添加环境变量 profile 既标记镜像运行时使用的配置文件
ENV PROFILES druid
#添加环境变量 容器中编码格式
ENV LANG en_US.UTF-8
#添加环境变量 服务虚拟机参数设定
ENV JAVA_OPTS "-Xms500m -Xmx1024m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=256m"
#根据dockerfile所放的位置将jar包copy至容器中的目标位置
COPY admin/target/admin.jar /app.jar
#执行命令 该命令就是在容器中运行java工程的命令
CMD java $JAVA_OPTS  -Dspring.profiles.active=${PROFILES} -jar /app.jar
# 暴露9090端口
EXPOSE 9090

构建镜像

构建镜像执行命令需要在dockerfile所在目录执行
Dockerfile构建Springboot工程镜像并运行(命令详解)_第1张图片

# 执行构建命令
docker build -t xxxxx:1.0 .

命令执行中,如下图
Dockerfile构建Springboot工程镜像并运行(命令详解)_第2张图片

#查看镜像
docker images

在这里插入图片描述
至此 镜像构建成功。

运行镜像及注意事项

使用刚才构建的镜像,构建容器并运行。

docker run -itd --name service  -v D:/docker-storage/server/uploadPath:/home/server/uploadPath -p 9090:9090 test:1.0

这里容器的端口在dockerfile中已经通过expose定义过为9090

你可能感兴趣的:(docker,容器,docker,devops,1024程序员节)