docker file-制作镜像

大纲:

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服务器

相关推荐
heimeiyingwang9 分钟前
【架构实战】Kubernetes故障排查全景图:从Pod异常到集群雪崩的诊断手册
容器·架构·kubernetes
AAA@峥40 分钟前
K8s 资源管控:ResourceQuota 与 LimitRange 机制详解与实战
云原生·容器·kubernetes
承渊政道1 小时前
KES专业技能包发布:覆盖数据库开发、迁移与运维全流程
运维·数据库·gitee·数据库开发·金仓数据库
笨鸟先飞,勤能补拙1 小时前
Web 服务器与计算机网络全景原理
运维·服务器·前端·网络·人工智能·计算机网络·web安全
daoihfoaf1 小时前
太原助听器品质甄选
容器
caimouse1 小时前
ReactOS 图形系统分析(3):显示驱动 DDI framebuf.dll
linux·运维·网络
跨境小彭1 小时前
Temu运营优化方案:活动库存自动化管控,解决断流、超卖与权重下跌问题
大数据·运维·人工智能·自动化·跨境电商·temu·temu电商运营
漫谈数据智理1 小时前
IDS-RAM 如何支撑数据空间走向可
大数据·运维·微服务
佳児素花痴╮1 小时前
网络问题与基础理论
运维·服务器·网络
tanglinS2 小时前
工业陶瓷在半导体设备里都用哪里?氮化铝基板与氮化硅结构件的静电无尘角色
大数据·运维·人工智能·自动化·材质