harbor仓库镜像批量上传和下载 您所在的位置:网站首页 msdosimg镜像下载 harbor仓库镜像批量上传和下载

harbor仓库镜像批量上传和下载

2023-07-08 22:09| 来源: 网络整理| 查看: 265

需求

在harbor仓库中有好多镜像,需要迁移至其他环境, 需要批量导出和下载 . 如果单个上传,下载,因为工作量比较大 ,容易出错.

所以想通过linux脚本批量处理, 所以涉及批量操作的处理的知识

前置

1 . 安装docker 并配置 2. docker登录harbor仓库

批量上传实现

1.从参数接收新harbor地址. 2.扫描所有tar包, 3.修改tag标签 为新harbor地址 4. 推送至新地址 5. 推送后删除本地镜像( 非必须) ps: 192.168.2.120 为旧地址, 版本号都是latest

HARBOR=$1 find ./images -name '*.tar' -type f -exec docker load -i {} \; for i in `docker images | grep '192.168.2.120' | awk '{print $1}'` do docker tag $i `echo ${i} | sed -r s!192.168.2.120!${HARBOR}!/g` done for i in `docker images | grep $HARBOR | awk '{print $1}'` do docker push ${i}:latest done docker rmi `docker images|grep '${HARBOR}'` 批量下载实现 使用变量组织所有harbor地址循环遍历地址 ,拉取镜像至本地使用sed 提取文件名保存至本地文件夹

ps: 理论应该用curl 获取仓库目录 ,但是因为上传时 本地镜像未删除,直接使用循环变量

HARBOR_IMAGES=( 192.168.2.120/projects/xx1:latest 192.168.2.120/projects/xx2:latest 192.168.2.120/projects/xx3:latest 192.168.2.120/projects/xx4:latest ) mkdir -p /data/harbor-images for i in ${!HARBOR_IMAGES[@]} do image=${HARBOR_IMAGES[I]} docker pull ${image} name=`echo ${image}|sed -r s!192.168.2.120/projects/!''!g` name=`echo ${image}|sed -r s!:latest!''!g` name=/data/harbor-images/${name}.tar docker save -o ${name} ${image}

简单运维中涉及批量操作的总结 ~ ~



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有