首页 > 其他分享 >将docker里的所有正在运行的docker容器commit成images镜像并推送至harbor仓库里

将docker里的所有正在运行的docker容器commit成images镜像并推送至harbor仓库里

时间:2023-10-13 10:13:13浏览次数:35  
标签:harbor HARBOR image 仓库 Harbor images 镜像 docker

脚本一

需求:将本地服务器上正在运行的所有容器打包成镜像并上传至Harbor仓库下的指定项目里 

 

#!/bin/bash

# 设置Harbor仓库的地址和凭据
HARBOR_URL="192.168.1.55:88"
HARBOR_USERNAME="admin"
HARBOR_PASSWORD="Harbor12345"
HARBOR_PROJECT="m55all-images"

# 登录到Harbor仓库
docker login $HARBOR_URL -u $HARBOR_USERNAME -p $HARBOR_PASSWORD

# 获取服务器上正在运行的容器列表
containers=$(docker ps --format "{{.Names}}")

# 遍历每个容器并将其提交为镜像并上传到Harbor
for container in $containers; do
# 获取容器ID
container_id=$(docker ps -qf "name=$container")

# 提取容器名称,将大写字母转换为小写
container_name=$(echo "$container" | tr 'A-Z' 'a-z')

# 生成一个时间戳作为日期,例如 "20231013"
timestamp=$(date '+%Y%m%d')

# 构建镜像名称,格式为 m55all-images/容器使用的镜像_日期
image_name="$HARBOR_URL/$HARBOR_PROJECT/$container_name"_"$timestamp"

# 提交容器为镜像
docker commit $container_id "$image_name"

# 上传镜像到Harbor
docker push "$image_name"

echo "容器 $container 已提交为镜像并上传至Harbor $HARBOR_PROJECT 仓库成功!"
done

echo "所有正在运行的容器已提交为镜像并上传至Harbor $HARBOR_PROJECT 仓库完成。"

 

 

脚本二

需求:将本地服务器上正在运行的所有容器(如果镜像名称以 "jet-ana" 或 "jet-compute" 开头,则跳过)打包成镜像并上传至Harbor仓库下的指定项目里 

 

#!/bin/bash

# 设置Harbor仓库的地址和凭据
HARBOR_URL="192.168.1.55:88"
HARBOR_USERNAME="admin"
HARBOR_PASSWORD="Harbor12345"
HARBOR_PROJECT="m62all-images"

# 登录到Harbor仓库
docker login $HARBOR_URL -u $HARBOR_USERNAME -p $HARBOR_PASSWORD

# 获取服务器上的所有Docker镜像列表
images=$(docker images --format "{{.Repository}}:{{.Tag}}")

# 遍历每个镜像并上传到Harbor的m55all-images仓库
for image in $images; do
# 提取镜像的仓库名称和标签
repo=$(echo $image | cut -d':' -f1)
tag=$(echo $image | cut -d':' -f2)

# 如果镜像名称以 "jet-ana" 或 "jet-compute" 开头,则跳过
if [[ "$repo" == "jet-ana"* || "$repo" == "jet-compute"* ]]; then
echo "跳过镜像 $image"
continue
fi

# 构建Harbor仓库中的镜像引用
harbor_image="$HARBOR_URL/$HARBOR_PROJECT/$repo:$tag"

# 重新标记镜像,将其命名为Harbor仓库的地址
docker tag $image $harbor_image

# 上传镜像到Harbor
docker push $harbor_image

echo "镜像 $image 上传至Harbor $HARBOR_PROJECT 仓库成功!"
done

echo "所有Docker镜像上传至Harbor $HARBOR_PROJECT 仓库完成。"

标签:harbor,HARBOR,image,仓库,Harbor,images,镜像,docker
From: https://www.cnblogs.com/likecoke/p/17761265.html

相关文章

  • wsl无法启动docker
    报错信息failedtostartdaemon:Errorinitializingnetworkcontroller:errorobtainingcontrollerinstance:unabletoaddreturnruleinDOCKER-ISOLATION-STAGE-1chain:(iptablesfailed:iptables--wait-ADOCKER-ISOLATION-STAGE-1-jRETURN:iptablesv1.8.7......
  • 130G docker seafile 从华为云迁移至腾讯云
    背景华为云到期,续费价格贵,腾讯云便宜,因此需要搬家华为云ubuntu16.401核2G200G系统盘,腾讯云同配置docker版seafile,文件总量130G力求简化粗暴无伤迁移方法操作华为云试做一个镜像,看看镜像有多大,测试后约90G在华为云买一个100G一个月时效的OBS,大约3.6元通知客户停机,做......
  • docker入门加实战—docker常见命令
    docker入门加实战—docker常见命令在介绍命令之前,先用一副图形象的展示一下docker的命令:常见命令docker的常见命令和文档地址如下表:命令说明文档地址dockerpull拉取镜像dockerpulldockerpush推送镜像到DockerRegistrydockerpushdockerimages查看本......
  • Docker 基础03
    十一、使用Docker-composeDocker使用Python语言编写,用于定义和运行多容器Docker应用程序的工具。通过Compose可以使用yaml文件配置应用程序所需要的所有服务。然后使用一个命令,从yaml文件中创建并启动服务。11.1安装docker-compose官网地址:https://github.com/docker/compose......
  • IntelliJ IDEA 连接远程 Docker 服务端
    IntelliJIDEA连接远程Docker服务端 一、背景说明在使用IntelliJIDEA做Java项目开发时,如果需要将服务打包,根据Dockerfile生成镜像,并上传到远程Linux服务器上,并部署运行容器。可以将打好的工程jar包先上传在Linux服务器上,执行Dockerfile文件,生成镜像,然后运行......
  • DOCKER本地仓库
     概述随着docker的应用越来越多,安装部署越来越方便,批量自动化的镜像生成和发布都需要docker仓库的本地化应用。试用了docker的本地仓库功能,简单易上手,记录下来以备后用。环境centos:CentOS release7.0(Final)或以上版本Dockerversion24.0.6,builded223bc下载regis......
  • docker 部署.net core ,用于博主本人笔记
     安装dockerdocker部署netcore步骤1、下载最新netcore支持dockerpullmcr.microsoft.com/dotnet/core/aspnet:latest2、发布netcore项目linux环境需要在发布文件夹内创建Dockerfile,并添加如下内容--------------------------以下为dockerFile内容--------------------......
  • harbor自建https证书生成
    1.创建根证书#生成RSA私有秘钥opensslgenrsa-outca-key.pem4096#生成CSR(CertificateSigningRequest),CSR和KEY是匹配的,CSR是最终的证书和私钥配对使用opensslreq-x509-new-nodes-sha512-days3650-subj"/C=CN/ST=Guangdong/L=Shenzhen/O=example/OU=DCP/CN=re......
  • centos 用docker 安装ansible UI管理工具awx
     环境说明:centos7.9ansible2.9.27dockerversion  24.0.6pythonversion3.6.8awxversion 11.2.0 AWX简介AWX提供了一个基于web的用户界面、RESTAPI和构建在Ansible之上的任务引擎。图形化的AWX能够更方便的编排和部署AnsiblePlaybook,并提供集中的日志记......
  • 【论文阅读】MD vs FA: Adversarial learning for small object segmentation in infr
    WangH,ZhouL,WangL.Missdetectionvs.falsealarm:Adversariallearningforsmallobjectsegmentationininfraredimages[C]//ProceedingsoftheIEEE/CVFInternationalConferenceonComputerVision.2019:8509-8518.论文试图解决什么问题?解决红外小目标的目标......