docker镜像打包

DockerFIle

bash 复制代码
在这里插入代码片

run.sh

bash 复制代码
#!/bin/bash

set -euo pipefail

CURRENT_DATE=$(date +%Y%m%d%H%M%S)
PROJECT_NAME="aiwrite-modules-aiwriteapi"
TAR_FILE="${PROJECT_NAME}.tar"

# 构建新镜像
docker build -t "${PROJECT_NAME}:${CURRENT_DATE}" .

# 清理旧镜像
echo "清理旧镜像..."
OLD_IMAGES=$(docker images --format "{{.Repository}}:{{.Tag}}" --filter=reference="${PROJECT_NAME}:*" | sort -r | tail -n +3)

if [ -n "$OLD_IMAGES" ]; then
    echo "删除以下旧镜像:"
    echo "$OLD_IMAGES"
    echo "$OLD_IMAGES" | xargs docker rmi
fi

# 显示当前镜像
docker images | grep "^${PROJECT_NAME}"

# 删除旧的 tar 文件(如果存在)
[ -f "${TAR_FILE}" ] && rm -f "${TAR_FILE}"

# 保存镜像
docker save -o "${TAR_FILE}" "${PROJECT_NAME}:${CURRENT_DATE}"

echo "镜像已保存到: ${TAR_FILE}"
echo "文件大小: $(du -h "${TAR_FILE}" | cut -f1)"
相关推荐
数字补给站3 小时前
Windows 10 + Hyper-V + Terraform + cloud-init:批量产出 3 台 Ubuntu 的实践笔记
运维·ai编程
M--Y4 小时前
Docker数据持久化与网络架构
网络·docker·架构
鹤落晴春6 小时前
【K8s】认识Kubernetes API:从CRD出发的一次梳理
云原生·容器·kubernetes
yanwumuxi7 小时前
Docker记录:误删宿主机挂载目录导致 PostgreSQL 数据丢失
docker·postgresql·容器
海鸥818 小时前
AIOps(智能运维)理解
运维·人工智能
码农小韩8 小时前
Linux应用开发(一)——Linux的标准IO
linux·运维·服务器
路弥行至8 小时前
Linux (ARM64 / Jetson) 挂载 exFAT 移动硬盘排障与离线安装指南
linux·运维·服务器·经验分享·笔记·jetson·exfat
漫谈数据智理8 小时前
主动元数据为何是数据编织的核心——从“连接数据”走向“感知、理解与行动”的 Data Fabric
运维·fabric
数据库小学妹8 小时前
MySQL长事务复盘:Sleep连接、MDL排队与undo滞留
运维·数据库·mysql
云泽8088 小时前
Linux 系统编程实战:从零手写一个高性能终端进度条
linux·运维·服务器