将docker里的所有images镜像推送至服务器上的harbor指定的仓库里

使用shell脚本 实现

将docker里的所有images镜像推送至服务器上的harbor指定的仓库里

shell脚本内容如下:

#!/bin/bash

# 设置Harbor仓库的地址和凭据

#harbor服务器地址
HARBOR_URL="192.168.1.55:88"

#用户名
HARBOR_USERNAME="admin"

#登录密码
HARBOR_PASSWORD="Harbor12345"

#指定的harbor仓库名
HARBOR_PROJECT="m55all-images"

# 登录到Harbor仓库
docker login $HARBOR_URL -u $HARBOR_USERNAME -p $HARBOR_PASSWORD

# 获取服务器上的所有Docker镜像列表
images=$(docker images --format "{{.Repository}}:{{.Tag}}")

# 遍历每个镜像并上传到Harbor的m55all-images仓库
for image in $images; do
# 提取镜像的仓库名称和标签
repo=$(echo $image | cut -d':' -f1)
tag=$(echo $image | cut -d':' -f2)

# 构建Harbor仓库中的镜像引用
harbor_image="$HARBOR_URL/$HARBOR_PROJECT/$repo:$tag"

# 重新标记镜像,将其命名为Harbor仓库的地址
docker tag $image $harbor_image

# 上传镜像到Harbor
docker push $harbor_image

echo "镜像 $image 上传至Harbor $HARBOR_PROJECT 仓库成功!"
done

echo "所有Docker镜像上传至Harbor $HARBOR_PROJECT 仓库完成。"

 

如图所示:

 

 

执行脚本即可

 

注意执行完成后

docker images查看镜像时候 会多出一些没有用的镜像

是因为通过harbor推送镜像时候 将原来所有的镜像都重新打标签了

需要执行下面的命令 将没有用的镜像全部删除

docker image prune --all

 

然后输入y

 

温馨小提示:

如果需要将其他服务器上的images也推送至harbor仓库里的话

需要修改下对应服务器上的/etc/docker/daemon.json配置文件,

将harbor仓库的地址写上

例如我的harbor仓库地址是192.168.1.5:88

那么我的配置文件就应该是:

vim /etc/docker/daemon.json

 

{
"registry-mirrors": ["http://abcd1234.m.daocloud.io"],
"log-driver": "json-file",
"log-opts": {"max-size": "1024m","max-file": "3"},
"insecure-registries": ["192.168.1.55:88"]
}

 

 

注意前三行最后的逗号!

注意前三行最后的逗号!

注意前三行最后的逗号!

如果没有的话,重启docker服务会报错

 

添加完成后再重启docker服务

systemctl restart docker

 

然后再执行最上面的shell脚本,

将仓库名更改成对应的,即可。

 

本文作者:小鬼 过来抱~

本文链接:https://www.cnblogs.com/likecoke/p/17491540.html

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   宝英姐姐  阅读(615)  评论(0编辑  收藏  举报
点击右上角即可分享
微信分享提示
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.