当前位置: 首页 > news >正文

本地jar包,制作Docker镜像,再推送镜像到K8s,重启K8s的操作过程。

本地jar包,制作Docker镜像,再推送镜像到K8s,重启K8s的操作过程。

在 Docker 中,镜像(Image)是构建和运行容器的核心基础,可以理解为一种轻量级、可执行的软件包,包含运行应用程序所需的一切:代码、依赖库、环境变量、配置文件等。以下是关于 Docker 镜像的详细解释:


1. 镜像的本质

  • 分层文件系统:镜像由多个只读层(Read-Only Layer)叠加而成,每一层代表文件系统的一次变更(如添加文件、安装软件包等)。这种设计实现了复用和共享,避免重复存储相同内容。
    • 例如:基础镜像(如 Ubuntu)是一层,安装 Python 后新增一层,复制应用代码再新增一层。
  • 联合文件系统(UnionFS):Docker 使用联合文件系统将多层合并为一个统一的视图,容器运行时通过可写层(Write Layer)实现数据修改(不影响原始镜像)。

2. 镜像与容器的关系

  • 镜像是静态的模板,容器是镜像的运行实例。
  • 类似面向对象编程:镜像 = 类,容器 = 对象。
  • 启动容器时,Docker 会在镜像顶部添加一个可写层,所有对容器的修改(如写入文件)都发生在此层。

实战示例:

Dockerfile内容:

FROM test.com/ihr/test:1.0 # 基础镜像
RUN rm -rf /usr/local/tomcat/webapps/test.war
ADD test.war /usr/local/tomcat/webapps/


bash 命令:

for i in "${!services[@]}"; do
serverName=${services[$i]};
DOCKERFILE="./Docker_$serverName"
imageName="ctg-registry-vpc.cn-shenzhen.cr.aliyuncs.com/ihr/$serverName:$TAG"
# 2. 构建新镜像(直接使用现有 Dockerfile)
docker build -t $imageName . -f $DOCKERFILE
# 3. 推送镜像
docker push $imageName
echo "操作完成:新镜像已推送至 $imageName"
# 4. 通过k8s更新容器 -n 命名空间 --record 记录发布节点,方便回滚
kubectl set image deployment/$serverName $serverName=$imageName -n $nameSpace --record
kubectl rollout restart deployment/$serverName -n $nameSpace
done

Dockerfile内容: FROM test.com/ihr/test:1.0 # 基础镜像 RUN rm -rf /usr/local/tomcat/webapps/test.war ADD test.war /usr/local/tomcat/webapps/ bash 命令: for i in "${!services[@]}"; do serverName=${services[$i]}; DOCKERFILE="./Docker_$serverName" imageName="ctg-registry-vpc.cn-shenzhen.cr.aliyuncs.com/ihr/$serverName:$TAG" # 2. 构建新镜像(直接使用现有 Dockerfile) docker build -t $imageName . -f $DOCKERFILE # 3. 推送镜像 docker push $imageName echo "操作完成:新镜像已推送至 $imageName" # 4. 通过k8s更新容器 -n 命名空间 --record 记录发布节点,方便回滚 kubectl set image deployment/$serverName $serverName=$imageName -n $nameSpace --record kubectl rollout restart deployment/$serverName -n $nameSpace done

Dockerfile文件的一些命令解析

Dockerfile 是一个文本文件,包含一系列指令(如FROMRUNCOPY),描述如何构建镜像。例如:

FROM ubuntu:20.04 # 基础镜像 RUN apt-get update && apt-get install -y python3 # 安装软件 COPY app.py /app/ # 复制文件 CMD ["python3", "/app/app.py"] # 启动命令

3. 镜像的存储与管理

  • 存储位置:镜像默认存储在/var/lib/docker(Linux)或 Docker Desktop 的虚拟文件系统中。
  • 常用命令
    • docker images:列出本地镜像。
    • docker rmi <镜像名>:删除镜像。
    • docker save <镜像名> > file.tar:导出镜像为文件。
    • docker load < file.tar:导入镜像。

http://www.jsqmd.com/news/438319/

相关文章:

  • 基于单片机的智能花盆(有完整资料)
  • LiteLLM 完全指南:统一 LLM API 网关
  • 聊聊学习用拉远镜,售后完善的拉远镜品牌企业哪家性价比高 - myqiye
  • 2026大空间纯电SUV推荐榜精选车型指南 - 博客万
  • 2026年北京上海等地室内家装设计师服务排名,推荐几家靠谱品牌 - 工业推荐榜
  • 【Docker】知识三 - 教程
  • 实用指南:pup区块链数据提取:解析分布式账本相关网页信息
  • 聊聊2026年高性价比的展会布置服务品牌企业,京津冀有哪些靠谱之选 - 工业品牌热点
  • 2026年有实力的消防应急照明集中电源,36v应急照明集中电源,集中电源集中控制应急照明系统厂家品牌推荐名录 - 品牌鉴赏师
  • 2026滚筒厂家综合实力测评报告:四大核心品牌推荐及选型指南 - 博客湾
  • 国内靠谱的经销商管理系统如何选 知名的DMS经销商管理系统服务供应商推荐 - 麦麦唛
  • 2026年3月流水线网链输送机厂家最新推荐,聚焦自动化产线与高效衔接 - 品牌鉴赏师
  • 毕业论文这些坑不要再采了
  • 2026四川AI服务器靠谱厂商推荐榜:最强算力服务器配置/服务器国产厂家/服务器存储厂家/服务器存储报价/服务器存储的价格/选择指南 - 优质品牌商家
  • 2026年正规的限流式电气防火保护器,三相限流式电气防火保护器,型电气防火限流式保护器厂家实力推荐 - 品牌鉴赏师
  • 深入理解 NCT 架构:代码级别的原理剖析(三)—— CNN vs NCT 对比与实践
  • 2026年华北地区室内家装设计师排名,哪家性价比高值得选 - mypinpai
  • 聊聊家装设计师怎么选,杨丰肇室内装修设计工作室性价比高吗? - 工业推荐榜
  • Netlify 表单处理深度解析
  • 2026年3月304不锈钢链板提升机厂家最新推荐,聚焦食品医药级适配 - 品牌鉴赏师
  • 告别噪音投诉!一文读懂静音发电机租赁的 5 大核心要素与优选厂商 - 深度智识库
  • Netlify 函数深度解析
  • 高难度作业攻坚!2026带压开孔封堵服务公司推荐排行 全场景履约/技术顶尖 - 极欧测评
  • JCMsuite应用:介质超表面的仿真
  • Ubuntu zip压缩文件夹操作
  • 豆包推广效果怎么样?如何联系豆包 GEO 获客服务商? - 品牌2026
  • TE泰科 MS5611-01BA03-50 LGA8 压力传感器
  • 20KW三相三电平光伏逆变器方案分享
  • 航发塑业作为upe板厂家,产品价格多少钱,全国服务靠谱吗? - myqiye
  • 深入理解 NCT 架构:代码级别的原理剖析(一)—— CNN 原理解读