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

相关推荐
a_small_problem1 小时前
win+wsl+系统代理环境下 docker pull 问题处理
docker
追逐时光者2 小时前
一款为程序员和运维人员量身打造的一站式开发运维利器
数据库·docker·ssh
坐吃山猪16 小时前
Docker03-知识点整理
docker
zml_201520 小时前
docker 1分钟 快速搭建 redis 哨兵集群
linux·redis·docker·docker-compose
运维开发王义杰20 小时前
Kubernetes: 解构Karpenter NodePool, 云原生时代的弹性节点管理艺术
云原生·容器·kubernetes
草履虫建模20 小时前
若依微服务一键部署(RuoYi-Cloud):Nacos/Redis/MySQL + Gateway + Robot 接入(踩坑与修复全记录)
redis·mysql·docker·微服务·云原生·nacos·持续部署
草莓田田圈~1 天前
kubernetes-ubuntu24.04操作系统部署k8s集群
云原生·容器·kubernetes
Brilliantee4041 天前
K8s 二次开发漫游录
云原生·容器·kubernetes·operator·k8s二次开发
阿鹿.1 天前
docker-相关笔记
java·笔记·docker
007php0071 天前
Go 语言常用命令使用与总结
java·linux·服务器·前端·数据库·docker·容器