docker上传images到harbor
LiuSw Lv6

docker上传images到harbor

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
#!/usr/bin/env bash

##############################################################
# 脚本名称: push_to_harbor.sh
# 脚本功能: 上传images到harbor
###############################################################

harborIp=192.168.137.11:81
project=system


echo '############################################################################'
echo '# docker版本 '
echo '############################################################################'
docker --version
if [ $? -ne 0 ];then
echo "请先安装docker!"
exit
fi

echo '############################################################################'
echo '# images列表及版本号: '
echo '############################################################################'
docker images |awk 'NR >1 {printf("%-70s%-15s%s\n",$1,$2,$3)}'


echo '############################################################################'
echo "# 登录$harborIp "
echo '############################################################################'
docker login $harborIp
if [ $? -ne 0 ];then
echo "登录失败,请检查后重试!"
exit
fi

docImages=($(docker images |awk 'NR >1 {printf($1":"$2" ")}'))
imageName=($(docker images |awk 'NR >1 {print($1)}'|awk -F "/" '{print $NF}'))
imageVersion=($(docker images |awk 'NR >1 {print($2)}'))
Number=()
t=1

if [ ${#docImages[@]} -ne ${#imageName[@]} -o ${#imageVersion[@]} -ne ${#imageName[@]} ];then
echo "获取images镜像出错,请检查!"
exit 1
fi

echo '############################################################################'
echo '# 上传harbor的images镜像列表 '
echo '############################################################################'
for ((i=0;i<${#docImages[@]};i++));do
echo "$(expr ${i} + 1) ${docImages[i]}"
done
echo "$(expr ${#docImages[@]} + 1) 退出"

while ((t<5));do
read -p "请选择要tag的images(填写序号):" -t 500 -a Number
if [ -z ${#Number[@]} ];then
read -p "请选择要tag的images(填写序号):" -t 500 -a Number
else
for ((k=0;k<${#Number[@]};k++));do
if [ ${Number[$k]} -eq $(expr ${#docImages[@]} + 1) ];then
echo "退出"
break
exit 1
fi
done
break
fi
done


echo '############################################################################'
echo '# 上传images镜像'
echo '############################################################################'
for ((a=0;a<${#Number[@]};a++));do
docker tag ${docImages[$a]} ${harborIp}/${project}/${imageName[$a]}:${imageVersion[$a]}
docker push ${harborIp}/${project}/${imageName[$a]}:${imageVersion[$a]}
docker rmi -f ${harborIp}/${project}/${imageName[$a]}:${imageVersion[$a]} >/dev/null
done


echo '############################################################################'
echo '# The End.'
echo '###########################################################################'

 评论