首页 > 其他分享 >命令行获取Harbor镜像清单

命令行获取Harbor镜像清单

时间:2024-05-22 09:29:07浏览次数:27  
标签:Harbor image awk 命令行 print 镜像 Image

在Harbor服务主机上,可通过如下命令在 registry 存储目录下获取镜像列表:

 

$ grep data_volume  /app/harbor/harbor.yml    #根据配置文件查找数据存储目录
data_volume: /data

$ cd /data/registry    #进入到Harbor的数据目录下
$ find  docker  -type  d  -name "current"  | sed  's|docker/registry/v2/repositories/||g;s|/_manifests/tags/|:|g;s|/current||g'  >  images.list
$ cat images.list
lidabai/busybox:1.28
library/prepare:v2.5.1

 

 Harbor API v2版本的Shell脚本实现

$ cat  Harbor-image-listk-v2.sh
#!/bin/bash
Harbor_Address=192.168.2.250:443       #Harbor主机地址
Harbor_User=admin                      #登录Harbor的用户
Harbor_Passwd=Harbor12345              #登录Harbor的用户密码
Images_File=harbor-images-`date '+%Y-%m-%d'`.txt   # 镜像清单文件
Tar_File=/backup/Harbor-backup/                 #镜像tar包存放路径
set -x
# 获取Harbor中所有的项目(Projects)
Project_List=$(curl -u admin:Harbor12345  -H "Content-Type: application/json" -X GET  https://192.168.2.250:443/api/v2.0/projects  -k  | python -m json.tool | grep name | awk '/"name": /' | awk -F '"' '{print $4}')

for Project in $Project_List;do
   # 循环获取项目下所有的镜像
    Image_Names=$(curl -u admin:Harbor12345 -H "Content-Type: application/json" -X GET https://192.168.2.250:443/api/v2.0/projects/$Project/repositories -k | python -m json.tool | grep name | awk '/"name": /' | awk -F '"' '{print $4}')
    for Image in $Image_Names;do
        # 循环获取镜像的版本(tag)
        Image_Tags=$(curl -u admin:Harbor12345  -H "Content-Type: application/json"   -X GET  https://192.168.2.250:443/v2/$Image/tags/list  -k |  awk -F '"'  '{print $8,$10,$12}')
        for Tag in $Image_Tags;do
            # 格式化输出镜像信息
            echo "$Harbor_Address/$Image:$Tag"   >> harbor-images-`date '+%Y-%m-%d'`.txt
        done
    done
done
$ chmod +x Harbor-image-listk-v2.sh
$ sh Harbor-image-listk-v2.sh

 

 

基于镜像清单将Harbor中的镜像制作成tar包

$ cat image-pull.sh
#!/bin/bash
###使用docker从镜像文件中下载镜像——将下载的镜像进行打包保存——删除下载到本地的镜像——将封装好的镜像包移动到备份目录
Image_tags=$(uniq $Images_File)
for image_tag in $Image_tags;do
    image_Name=$(echo $image_tag | awk -F/ '{print $3}' |  awk -F: '{print $1}')
    image_Lable=$(echo $image_tag | awk -F/ '{print $3}' |  awk -F: '{print $2}')
    docker pull $image_tag
    docker save $image_tag  -o $image_Name-$image_Lable.tar
    docker rmi  $image_tag
    mv $image_Name-$image_Lable.tar  $Tar_File
done
$ chmod +x  image-pull.sh

 

摘自:

https://blog.51cto.com/u_11529070/9176507

标签:Harbor,image,awk,命令行,print,镜像,Image
From: https://www.cnblogs.com/fengjian2016/p/18205497

相关文章

  • dotnet 命令行工具解决方案 PomeloCli
    目录PomeloCli是什么为什么实现太多的工具太少的规范基于二进制拷贝分发难以为继快速开始1.引用PomeloCli开发命令行应用2.引用PomeloCli开发命令行插件开发命令行插件搭建私有nuget服务发布命令行插件3.使用PomeloCli集成已发布插件安装命令行宿主集成命令行插件卸......
  • docker - 容器镜像常用命令
    容器相关#查看正在运行的容器dockerps#查看所有容器dockerps-a#格式化输出,有时候信息太杂,需要简化输出内容dockerps--format'{{.ID}}\t{{.Image}}'#查看最后一次运行的容器dockerps-l#查看停止的容器dockerps-fstatus-exited#停止容器dockerstop[......
  • docker - 容器镜像打包
    镜像保存与载入将镜像打包成tar包#保存镜像,使用镜像id保存,这个操作会丢失版本号和镜像名称(变成null)dockersave[image_id]-o[filename]#保存镜像,个人推荐这么打包dockersave[image]:[tag]-o[image]:[tag].tardockersave[image]:[tag]gzip-o[image]:[tag......
  • docker - 镜像仓库harbor
    环境需求:提前安装docker、docker-composehttps://github.com/goharbor/harbor/releases/download/v2.7.3/harbor-offline-installer-v2.7.3.tgz安装包:harbor-offline-installer-v2.7.3.tgz流程概述:解压安装包,修改yml文件,执行安装程序install.sh。harbor.yml重点关注下面......
  • docker - 镜像仓库域名
    业务场景实用镜像仓库,不是真的搞一个很大的仓库,让大家都用我们的镜像。在离线的环境下,如果需要镜像仓库,就需要我们自己搭建了(自动化部署)。业务需求自己搭建镜像仓库,会用到下面这个命令,仔细看就能发现:拉取和推送的命令中,包含仓库的IP地址,如果回头迁移镜像库,不是得改一大堆应......
  • 命令行视频处理工具ffmpeg学习总结
    处理视频是我经常进行得一个操作,但是需要下载大量得视频处理工具,而ffmpeg是个十分强大但是轻量得视频处理工具,通过在命令行里面输入一些指令,我们可以对视频进行许多操作。你可能对它并不了解,但是很多软件都利用了它的技术或者核心库,因此学习一下ffmpeg得使用还是十分有必要的。......
  • Harbor数据迁移
    Harbor安装参考https://www.cnblogs.com/minseo/p/8905736.htmlHarbor数据需要从一台主机迁移至另外一台主机原主机备份数据备份数据文件夹,该数据文件夹配置在配置文件harbor.yml把数据文件移动到目标主机目标主机安装Harbor安装参考上面链接修改配置文件安装#./in......
  • Go程序制作成Docker镜像
    要将自己编写的Go程序制作成Docker镜像,你需要创建一个Dockerfile,然后使用Docker命令构建镜像。以下是一个基本的示例:创建一个名为Dockerfile的文件,并添加以下内容:#使用官方Go镜像作为构建环境FROMgolang:1.18-alpineASbuilder#设置工作目录WORKDIR/app#复制go......
  • node加速镜像源 管理工具nrm安装使用
     我们在开发node.js的时候,经常会遇到某些包无法下载,或者下载太慢,还有需要加载我们自己是有源中的包的问题,今天推荐给大家的这款nrm镜像源管理工具就是解决这类问题的. 安装方法也很简单,执行npminstallnrm-g就可以安装#安装nrmnpminstallnrm-g#添......
  • Harbor 核心服务不可用
    1、可以通过浏览器打开登录页面,所以服务是起来了;2、查看harbor日志tail/var/log/harbor/core.log可见是redis的问题3、查看harbor中redis日志tail/var/log/harbor/redis.log报错信息和RDB相关,版本问题,读取不到RDB文件4、解决方案:删除dump文件,并重启harbor4.1、查......