2.下载好二进制文件
mv skopeo-linux-amd64 /usr/local/bin/skopeo
chmod +x /usr/local/bin/skopeo
3.配置脚本
#!/bin/sh
src_registry='src.harbor.cangku'
src_tls_verify='false'
src_username='user'
src_password='pwd'
dest_registry='dest.nexus.cangku'
dest_tls_verify='false'
dest_username='user'
dest_password='pwd'
skopeo login $src_registry -u $src_username -p $src_password --tls-verify=$src_tls_verify
skopeo login $dest_registry -u $dest_username -p $dest_password --tls-verify=$dest_tls_verify
# 获取所有需要同步的仓库(不同的源可能获取仓库列表的接口不一样,具体到浏览器调试查看,下方是 Harbor v2.3.2-6b6c21da)
image_names=`curl http://$src_registry/api/v2.0/projects/ai-platform/repositories?page_size=100&page=1 2>/dev/null`
image_names=`echo $image_names | jq ' .[] | .name' | tr -d '"'`
echo "同步的仓库(Sync repo): $image_names"
echo "================================"
for i in $image_names
do
echo "同步 $i 仓库中(sync $i )"
echo "skopeo sync --src docker --dest docker $src_registry/$i $dest_registry/$i"
skopeo sync -a \
--src docker \
--src-tls-verify=$src_tls_verify \
--src-username=$src_username \
--src-password=$src_password \
--dest docker \
--dest-tls-verify=$dest_tls_verify \
--dest-username=$dest_username \
--dest-password=$dest_password \
--retry-times=3 \
--keep-going \
$src_registry/$i $dest_registry/$i
done