#!/bin/bash
docker image ls | grep docker.io | grep -v "docker.io/registry" | awk '{print $1" "$2" "$3}' > /root/tag_cache1
docker image ls | grep -v "IMAGE ID" | grep -v "docker.io/registry" | awk '{print $3}' | sort -n | uniq -c | awk '{if($1!=1) print $2}' > /root/tag_cache2
while read line
do
sed -i "/$line/d" /root/tag_cache1
done < /root/tag_cache2
while read line
do
name=`echo "$line" | awk '{print $1}'`
version=`echo $line | awk '{print $2}'`
truename=`echo $name | awk -F'/' '{print $2}'`
docker tag $name:$version registry:5000/wdst/$truename:$version
docker push registry:5000/wdst/$truename:$version
done < /root/tag_cache1
rm -f /root/tag_cache1 /root/tag_cache2
该脚本只适用于从docker.io下载的镜像,可以在批量下载镜像后,执行该脚本,即可立即推送到自己的镜像仓库。
PS.需要修改/etc/hosts,添加一行
echo "your_ip registry" >> /etc/hosts