利用Linux脚本将Docker镜像手工上传到Harbor仓库
简要说明如何通过Linux
指令将特定的Docker
镜像手工上传到Harbor
仓库
-
Harbor
系统的访问地址为http://aeectss.xxxx.local:30005/
,在要操作的电脑上确保已经给/etc/docker/daemon.json
添加了insecure-registries
的配置,使得Harbor
在非HTTPS协议下也能上传1 2 3
{ "insecure-registries": ["aeectss.xxxx.local:30005"], }
若没有上述配置,在添加完毕之后需要通过
systemctl daemon-reload && systemctl restart docker
让修改生效 -
确保要操作人员的账户在
harbor
中对应的项目下具有项目管理员
权限,类似如下图所示 -
在对应电脑的终端上执行下述指令,此处的账号为前一个步骤配置好的具有权限的账号
1 2 3 4 5 6
image=orienlink-frame-extraction:1.3.4.3 \ && docker login -u yunqaing.lu -p xxxx aeectss.xxxx.local:30005 \ && docker tag orienlink-frame-extraction:1.3.4.4 aeectss.xxxx.local:30005/orienlink-product-library/$image \ && docker push aeectss.xxxx.local:30005/orienlink-product-library/$image \ && docker rmi aeectss.xxxx.local:30005/orienlink-product-library/$image \ && docker logout aeectss.xxxx.local:30005
或将上述命令修改为更灵活的shell脚本,类似如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
#!/bin/bash printf "请输入对应的用户名:" read username read -s -p "请输入对应的密码:" password printf "\n请输入要上传的镜像与版本:" read tag docker login -u $username -p $password aeectss.xxxx.local:30005 docker tag $tag aeectss.xxxx.local:30005/orienlink-product-library/$tag docker push aeectss.xxxx.local:30005/orienlink-product-library/$tag docker rmi aeectss.xxxx.local:30005/orienlink-product-library/$tag docker logout aeectss.xxxx.local:30005
-
若一切正常,执行结果类似如下所示
-
去
harbor
仓库检测后可发现对应的镜像已经上传成功 -
若重复上传同一个
tag
的镜像,则第二次上传会较快。