大纲:

java应用打包成app.jar文件,将jar文件制作成镜像大致流程:
1.创建一个dockerfile文件,在dockerfile文件里编写制作镜像的指令
2.docker 的builder构建器就会根据dockerfile文件里的指令拿着app.jar文件制作成镜像。
镜像里边包含内容:
app.jar文件要运行的基础环境,比如开源操作系统ubuntu以及要运行的java环境
app.jar软件包
app.jar软件包启动命令
类似windows装机镜像.iso文件,iso文件里包含了window基础环境+winows上安装的一些软件+window启动引导命令
dockerfile常见指令:
详细指令参考docker官网的dockerfile目录页



编写一个dockerfile文件:
1.vim dockerfile创建dockerfile文件:
From:指定镜像运行的基础环境。实际上指定的是镜像里边的软件包运行的基础环境,此处镜像里的软件包是app.jar包,jar包运行的基础环境是jdk,所以此处From指定的基础环境是openjdk:17
如下截图中的dockerfile文件中的Expose指令解释有误,dockerfile文件中expose暴露的端口是在镜像内部的操作系统环境下暴露的端口,即类似容器内部的端口,不是外部浏览器可以访问的端口,外部浏览器要访问镜像启动的容器应用需要做端口映射,即把容器内部的镜像端口暴露出去,在容器启动时指定-p







2.docker build构建镜像并启动镜像为容器:







项目中的dockerfile文件示例:
# 环境
FROM xx/openjdk:v2.0
# 作者信息
MAINTAINER xx
## 将日志文件挂载到宿主机上
#VOLUME /data
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#yum -y install fontconfig
#COPY src/main/resources/font /usr/share/fonts/
#RUN fc-cache -vf
# 拷贝jar
ADD target/xx.jar xx.jar
ADD target/transmittable-thread-local.jar transmittable-thread-local.jar
# 设置暴露的端口号
EXPOSE xxxx
# 执行命令 线上2C 4G 机器使用
ENTRYPOINT exec java -Xmx4g -Xms4g -javaagent:transmittable-thread-local.jar -Xbootclasspath/a:transmittable-thread-local.jar -jar -Dspring.profiles.active=prod xx.jar
windows启动jar包:
windows本地已安装jar包运行所需要的jdk环境




rz命令从windows本地上传文件到linux服务器


