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

📅 发布时间:2026/7/17 10:50:34 👁️ 浏览次数:
本地jar包,制作Docker镜像,再推送镜像到K8s,重启K8s的操作过程。
本地jar包制作Docker镜像再推送镜像到K8s重启K8s的操作过程。在 Docker 中镜像Image是构建和运行容器的核心基础可以理解为一种轻量级、可执行的软件包包含运行应用程序所需的一切代码、依赖库、环境变量、配置文件等。以下是关于 Docker 镜像的详细解释1. 镜像的本质分层文件系统镜像由多个只读层Read-Only Layer叠加而成每一层代表文件系统的一次变更如添加文件、安装软件包等。这种设计实现了复用和共享避免重复存储相同内容。例如基础镜像如 Ubuntu是一层安装 Python 后新增一层复制应用代码再新增一层。联合文件系统UnionFSDocker 使用联合文件系统将多层合并为一个统一的视图容器运行时通过可写层Write Layer实现数据修改不影响原始镜像。2. 镜像与容器的关系镜像是静态的模板容器是镜像的运行实例。类似面向对象编程镜像 类容器 对象。启动容器时Docker 会在镜像顶部添加一个可写层所有对容器的修改如写入文件都发生在此层。实战示例Dockerfile内容:FROM test.com/ihr/test:1.0 # 基础镜像RUN rm -rf /usr/local/tomcat/webapps/test.warADD test.war /usr/local/tomcat/webapps/bash 命令for i in ${!services[]}; doserverName${services[$i]};DOCKERFILE./Docker_$serverNameimageNamectg-registry-vpc.cn-shenzhen.cr.aliyuncs.com/ihr/$serverName:$TAG# 2. 构建新镜像直接使用现有 Dockerfiledocker build -t $imageName . -f $DOCKERFILE# 3. 推送镜像docker push $imageNameecho 操作完成新镜像已推送至 $imageName# 4. 通过k8s更新容器 -n 命名空间 --record 记录发布节点方便回滚kubectl set image deployment/$serverName $serverName$imageName -n $nameSpace --recordkubectl rollout restart deployment/$serverName -n $nameSpacedoneDockerfile内容: 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 imageNamectg-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 doneDockerfile文件的一些命令解析Dockerfile 是一个文本文件包含一系列指令如FROM、RUN、COPY描述如何构建镜像。例如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/dockerLinux或 Docker Desktop 的虚拟文件系统中。常用命令docker images列出本地镜像。docker rmi 镜像名删除镜像。docker save 镜像名 file.tar导出镜像为文件。docker load file.tar导入镜像。