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

相关推荐
cui_hao_nan39 分钟前
Docker学习3
docker·容器
七夜zippoe1 小时前
DolphinDB 运维工具实战:自动化脚本体系设计与落地(2.0.x)
运维·dolphindb·自动化脚本·体系设计·体系落地
玉&心1 小时前
在Docker中部署前端和后端的实现
运维·docker·容器
wdfk_prog1 小时前
Docker 常用语法与命令:CLI、Dockerfile 与 Compose 速查
运维·docker·容器
无敌糖果1 小时前
K8S network namespace错误分析
docker·容器·kubernetes
skywalk81632 小时前
通过下载Ubuntu ova文件在Virtual Box快速安装ubuntu
linux·运维·ubuntu·virtualbox
姚不倒2 小时前
HAProxy 系列(四):多中间件统一 VIP 入口 — 架构模式与最佳实践
运维·中间件·架构·haproxy
happymade2 小时前
7000 台网络设备批量纳管 & 自动拓扑生成实战——MSRM3 完整操作流程与关键要点复盘
运维·服务器·网络·zabbix·grafana·msrm3
郝开2 小时前
Docker Compose 模块化多环境配置规范指南:示例搭建Kibana 9.4.2
docker·容器·kibana
做萤石二次开发的哈哈2 小时前
萤石蓝海 AIoT 一站式工作台:海康LCD会议平板接入,多端大屏运维应用一站生成
运维·物联网·电脑·萤石开放平台·会议室管理·蓝海aiot一站式工作台·otap物模型