docker自动化导入镜像并上传到仓库

创建一个脚本,脚本内容如下,执行脚本导入镜像并上传

#!/bin/bash

## Enter docker image file path
file_path=/root

## Enter your host ip
host_ip=192.168.200.202

## Filter docker image files
image_files=$(ls $file_path -I "*registry*" |grep .tar)

for file in $image_files
{
  ## Get the json file in docker image file
  image_jsons=$(tar -tf $file_path/$file |awk -F "/" '{print $1}' |grep .json)

  for json in $image_jsons
  {
    ## Filter json file
    if [[ $json != manifest.json ]] ; then
       ## Get docker image id
       json_name=${json%.*}
       image_id=${json_name:0:12}
    fi
  }

  ## Get docker image file name
  file_name=${file%.*}

  sum=0
  for (( i=1; i<=${#file_name}; i++ ))
  {
    ## Convert filename to array
    image_name[$i]=$(echo "$file_name" |cut -c $i)

    ## Find the location of "_"
    if [[ ${image_name[$i]} = _ ]] ; then
      num[$sum]=$i
      ((sum++))
    fi
  }

  ## Modify special characters
  for (( i=0; i<=$sum - 1; i++ ))
  {
    image_name[${num[$i]}]=/

    if [[ $i = ${#num} ]] ; then
      image_name[${num[$i]}]=:
    fi
  }

  tag_name=''
  for (( i=1; i<=${#file_name}; i++ ))
  {
    tag_name=$tag_name${image_name[$i]}
  }

  ## Load docker image
  docker load < $file_path/$file

  ## Tag and Push docker image
  docker tag $image_id $host_ip:5000/$tag_name
  docker push $host_ip:5000/$tag_name

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值