harbor实例间的镜像传输

操作部分

现在已经具备了两个安装好的harbor和一个docker客户端,主机及ip情况如下表所示

主机ip角色
host1192.168.20.120docker
host2192.168.20.121harbor1
host3192.168.20.122harbor2

在harbor1上创建项目kgc
在这里插入图片描述

在harbor1上设置复制目标
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在harbor1上创建复制规则
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

现在我们去客户端配置的docker、登陆harbor,并上传镜像到kgc项目

[root@localhost ~]# vim /usr/lib/systemd/system/docker.service 
 14 ExecStart=/usr/bin/dockerd --insecure-registry 192.168.20.121
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl restart docker
[root@localhost ~]# docker login -u admin -p Harbor12345 192.168.20.121
WARNING! Using --password via the CLI is insecure. Use --password-stdin.
WARNING! Your password will be stored unencrypted in /root/.docker/config.json.
Configure a credential helper to remove this warning. See
https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded
[root@localhost ~]# docker tag centos 192.168.20.121/kgc/centos:latest
[root@localhost ~]# docker push 192.168.20.121/kgc/centos
The push refers to repository [192.168.20.121/kgc/centos]
d69483a6face: Pushed 
latest: digest: sha256:ca58fe458b8d94bc6e3072f1cfbd334855858e05e1fd633aa07cf7f82b048e66 size: 529

去harbor1上查看镜像是否上传
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
由上图可以看出,harbor1的镜像复制到了harbor2上,下面我们登陆harbor2进行查看验证

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用Golang调用Harbor API删除镜像,可以按照以下步骤进行操作: 1. 导入相关的Golang软件包: ```go import ( "bytes" "net/http" ) ``` 2. 构建HTTP请求: ```go func createRequest(method, url string, payload []byte) (*http.Request, error) { req, err := http.NewRequest(method, url, bytes.NewBuffer(payload)) if err != nil { return nil, err } req.Header.Set("Content-Type", "application/json") return req, nil } ``` 3. 发送HTTP请求并获取响应: ```go func sendRequest(req *http.Request) (*http.Response, error) { client := http.DefaultClient resp, err := client.Do(req) if err != nil { return nil, err } return resp, nil } ``` 4. 构建删除镜像的URL: ```go func buildDeleteURL(baseURL, projectName, repoName, tag string) string { return fmt.Sprintf("%s/api/repositories/%s/%s/tags/%s", baseURL, projectName, repoName, tag) } ``` 5. 执行删除镜像的操作: ```go func deleteImage(baseURL, projectName, repoName, tag, username, password string) error { url := buildDeleteURL(baseURL, projectName, repoName, tag) req, err := createRequest("DELETE", url, nil) if err != nil { return err } req.SetBasicAuth(username, password) resp, err := sendRequest(req) if err != nil { return err } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { return fmt.Errorf("Failed to delete image. Status code: %d", resp.StatusCode) } return nil } ``` 其中,baseURL是Harbor的URL,projectName是项目名称,repoName是镜像仓库名称,tag是镜像标签,username和password是Harbor API的登录凭证。 通过以上步骤,就可以使用Golang调用Harbor API删除镜像了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值