docker快捷打包脚本(ai版)

直接进入主题:

用这个脚本前提是你本地可以拉镜像仓库的镜像,并且在

本地有了,然后将所有的镜像tag写在一个文件中,和下面docker_tags.txt 对应,文件叫什么,脚本里对应改什么,给小白说的

bash 复制代码
#!/bin/bash

# 假设 Docker 镜像标签存储在 docker_tags.txt 文件中
TAGS_FILE="docker_tags.txt"
# 输出目录
OUTPUT_DIR="docker_images"

# 创建输出目录,如果不存在
mkdir -p "$OUTPUT_DIR"

# 读取文件中的每一行
while IFS= read -r line; do
    # 使用正则表达式提取镜像名和标签
    if [[ $line =~ ^([a-zA-Z0-9.-]+/devops/[a-zA-Z0-9-]+):([a-zA-Z0-9-]+)$ ]]; then
        image_name=${BASH_REMATCH[1]}
        tag=${BASH_REMATCH[2]}
        # 构建镜像的完整名称
        full_image_name="${image_name}:${tag}"
        # 输出文件名
        output_file="${OUTPUT_DIR}/${image_name//\//_}:${tag}.tar.gz"
        
        # 使用 docker save 保存镜像
        echo "保存镜像: $full_image_name 到 $output_file"
        docker save -o "$output_file" "$full_image_name"
    fi
done < "$TAGS_FILE"

赋权并执行脚本既可,

这个脚本做了以下几件事:

读取 docker_tags.txt 文件中的每一行。 使用正则表达式提取 Docker 镜像的名称和标签。

构建镜像的完整名称(包括仓库地址、镜像名和标签)。 为每个镜像生成一个唯一的输出文件名,避免文件名冲突。 使用 docker save

命令将每个镜像保存为 .tar.gz 格式的文件到指定的输出目录中。 确保在运行此脚本之前,你已经登录了 Docker

仓库,并且有权限拉取这些镜像。如果镜像存储在私有仓库中,可能需要使用 docker login 命令登录到相应的 Docker

仓库。同时,确保你的 Docker 守护进程正在运行,并且有足够的磁盘空间来存储这些镜像文件。

相关推荐
阿虎儿12 小时前
Docker安装(非sudo用户可用)
docker
fetasty2 天前
rustfs加picgo图床搭建
docker
蝎子莱莱爱打怪2 天前
GitLab CI/CD + Docker Registry + K8s 部署完整实战指南
后端·docker·kubernetes
小p3 天前
docker学习7:docker 容器的通信方式
docker
小p3 天前
docker学习5:提升Dockerfile水平的5个技巧
docker
小p4 天前
docker学习3:docker是怎么实现的?
docker
小p5 天前
docker学习: 2. 构建镜像Dockerfile
docker
小p5 天前
docker学习: 1. docker基本使用
docker
崔小汤呀6 天前
Docker部署Nacos
docker·容器
缓解AI焦虑6 天前
Docker + K8s 部署大模型推理服务:资源划分与多实例调度
docker·容器