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

相关推荐
FreeBuf_几秒前
Claude Mythos Preview 实现自动化漏洞研究突破,可构建PoC漏洞利用链
运维·自动化
风静如云9 分钟前
VMware:下载
运维
IMPYLH21 分钟前
Linux 的 wc 命令
linux·运维·服务器·前端·bash
ElevenS_it18828 分钟前
Redis监控实战:内存使用+命中率+连接数三类核心指标接入Zabbix+分级告警完整配置方案
运维·网络·redis·mybatis·zabbix
zxy64449247333 分钟前
Centos7.9编译安装PHP7.4
linux·运维·服务器
无限进步_35 分钟前
【Linux】从冯诺依曼到操作系统:理解计算机运行的基本脉络
linux·运维·服务器
Rabbit_QL1 小时前
【ln -s】Linux 软链接在大模型部署中的应用
linux·运维·服务器
Waay1 小时前
图文详解|K8s Pod内部结构
docker·云原生·kubernetes
LT10157974441 小时前
2026年超自动化平台选型指南:全流程智能协同适配
运维·人工智能·自动化
枳实-叶2 小时前
【Linux驱动开发】第12天:Linux设备树核心:树形结构+节点+属性 完整全解
linux·运维·驱动开发