41 lines
1.0 KiB
Bash
41 lines
1.0 KiB
Bash
#!/bin/bash
|
|
|
|
# 创建输出目录
|
|
OUTPUT_DIR="docker_images_backup"
|
|
mkdir -p $OUTPUT_DIR
|
|
|
|
# 定义输出文件名
|
|
OUTPUT_FILE="$OUTPUT_DIR/docker_images_$(date +%Y%m%d).tar"
|
|
|
|
echo "开始导出 Docker 镜像到 $OUTPUT_FILE..."
|
|
|
|
# 从各个文件中提取的基础镜像列表
|
|
IMAGES=(
|
|
"python:3.13-slim",
|
|
"ghcr.io/astral-sh/uv:0.11.26",
|
|
"node:24-alpine",
|
|
"node:24-slim",
|
|
"nginx:alpine",
|
|
"neo4j:5.26",
|
|
"quay.io/coreos/etcd:v3.5.5",
|
|
"minio/minio:RELEASE.2023-03-20T20-16-18Z",
|
|
"milvusdb/milvus:v2.5.6",
|
|
)
|
|
|
|
# 确保所有镜像都已下载
|
|
for IMAGE in "${IMAGES[@]}"; do
|
|
echo "正在拉取镜像: $IMAGE"
|
|
docker pull $IMAGE
|
|
done
|
|
|
|
# 保存所有镜像到单个 tar 文件
|
|
echo "正在保存镜像到 tar 文件..."
|
|
docker save ${IMAGES[@]} -o $OUTPUT_FILE
|
|
|
|
# 计算文件大小
|
|
FILE_SIZE=$(du -h $OUTPUT_FILE | cut -f1)
|
|
|
|
echo "完成!"
|
|
echo "所有 Docker 镜像已保存到: $OUTPUT_FILE"
|
|
echo "文件大小: $FILE_SIZE"
|
|
echo "使用命令: docker load -i $OUTPUT_FILE 加载镜像" |