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

相关推荐
Leinwin3 小时前
OpenClaw 多 Agent 协作框架的并发限制与企业化规避方案痛点直击
java·运维·数据库
2401_865382503 小时前
信息化项目运维与运营的区别
运维·运营·信息化项目·政务信息化
漠北的哈士奇3 小时前
VMware Workstation导入ova文件时出现闪退但是没有报错信息
运维·vmware·虚拟机·闪退·ova
如意.7594 小时前
【Linux开发工具实战】Git、GDB与CGDB从入门到精通
linux·运维·git
运维小欣4 小时前
智能体选型实战指南
运维·人工智能
yy55274 小时前
Nginx 性能优化与监控
运维·nginx·性能优化
爱吃土豆的马铃薯ㅤㅤㅤㅤㅤㅤㅤㅤㅤ5 小时前
Linux 查询某进程文件所在路径 命令
linux·运维·服务器
05大叔7 小时前
网络基础知识 域名,JSON格式,AI基础
运维·服务器·网络
安当加密7 小时前
无需改 PAM!轻量级 RADIUS + ASP身份认证系统 实现 Linux 登录双因子认证
linux·运维·服务器
dashizhi20157 小时前
服务器共享禁止保存到本地磁盘、共享文件禁止另存为本地磁盘、移动硬盘等
运维·网络·stm32·安全·电脑