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 守护进程正在运行,并且有足够的磁盘空间来存储这些镜像文件。

相关推荐
onkel in blog2 小时前
【Docker】Docker Compose方式搭建分布式内存数据库(Redis)集群
数据库·redis·分布式·docker
跪下,大胆刁民2 小时前
CentOS 7 基础环境安装脚本
docker·centos·bash
alden_ygq4 小时前
Kubernetes生产实战(十九):镜像拉取失败排查处理
云原生·容器·kubernetes
alden_ygq4 小时前
Kubernetes排错(十四):Pod状态异常排查手册
云原生·容器·kubernetes
Kookoos4 小时前
基于 PostgreSQL 的 ABP vNext + ShardingCore 分库分表实战
数据库·docker·postgresql·c#·.net
hie988944 小时前
k8s存储类型:emptyDir、hostPath、nfs、pvc及存储类storageclass的静态/动态创建pv
云原生·容器·kubernetes
TianJinZi5 小时前
linux环境安装docker
linux·运维·docker
fie88896 小时前
初识Dockerfile之RUN和WORKDIR
docker
may_一一6 小时前
Docker宿主机IP获取
tcp/ip·docker·容器
小声读源码10 小时前
【部署】win10的wsl环境下调试dify的api后端服务
vscode·python·docker·uv·dify·remote-ssh·pyenv