DockerCompose 打包所有镜像

DockerCompose 打包所有镜像,每个镜像保存为一个文件

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#!/bin/sh

# 检查是否存在 docker-compose.yml 文件
if [ ! -f docker-compose.yml ]; then
    echo "docker-compose.yml 文件不存在!"
    exit 1
fi

# 拉取镜像到本地
echo "拉取镜像"
docker-compose pull

# 读取 docker-compose.yml 中的镜像
images=$(docker-compose config | grep 'image:' | awk '{print $2}')

# 创建导出目录
mkdir -p images

# 遍历镜像并导出
for image in $images; do
    # 获取镜像名称和标签
    image_file_name_tag=$(echo "$image" | tr ':' '_' | tr '.' '_' | tr '/' '_')

    # 导出镜像
    echo "导出镜像: $image"
    docker save -o "images/${image_file_name_tag}.tar" "$image"
done

echo "所有镜像已导出到 images 目录"
Gear(夕照)的博客。记录开发、生活,以及一些不足为道的思考……