镜像仓库
更新时间:2026-04-01
镜像仓库管理
前置代码
如下代码用于初始化 CCR Client,后续示例均基于该 ccrClient。
Go
1package main
2
3import (
4 "fmt"
5
6 "github.com/baidubce/bce-sdk-go/services/eccr"
7)
8
9func newClient() (*eccr.Client, error) {
10 ak := "<your-ak>"
11 sk := "<your-sk>"
12 endpoint := "ccr.bj.baidubce.com"
13 return eccr.NewClient(ak, sk, endpoint)
14}
15
16func main() {
17 ccrClient, err := newClient()
18 if err != nil {
19 fmt.Println("new eccr client failed:", err)
20 return
21 }
22
23 _ = ccrClient
24}
ListRepositories
如下代码可以列举命名空间下镜像仓库:
Go
1instanceID := "ccr-xxxxxxxx"
2projectName := "demo-project"
3
4args := &eccr.ListRepositoriesArgs{
5 PageNo: 1,
6 PageSize: 10,
7 RepositoryName: "",
8}
9
10resp, err := ccrClient.ListRepositories(instanceID, projectName, args)
11if err != nil {
12 fmt.Println("list repositories failed:", err)
13 return
14}
15
16fmt.Println("total:", resp.Total)
17for _, repo := range resp.Items {
18 fmt.Printf("repository=%s tagCount=%d\n", repo.RepositoryName, repo.TagCount)
19}
GetRepositoryDetail
如下代码可以查询镜像仓库详情:
Go
1instanceID := "ccr-xxxxxxxx"
2projectName := "demo-project"
3repositoryName := "nginx"
4
5resp, err := ccrClient.GetRepositoryDetail(instanceID, projectName, repositoryName)
6if err != nil {
7 fmt.Println("get repository detail failed:", err)
8 return
9}
10
11fmt.Println("repository:", resp.RepositoryName)
12fmt.Println("description:", resp.Description)
13fmt.Println("pull count:", resp.PullCount)
UpdateRepository
如下代码可以更新镜像仓库描述:
Go
1instanceID := "ccr-xxxxxxxx"
2projectName := "demo-project"
3repositoryName := "nginx"
4
5args := &eccr.UpdateRepositoryArgs{
6 Description: "updated by sdk example",
7}
8
9resp, err := ccrClient.UpdateRepository(instanceID, projectName, repositoryName, args)
10if err != nil {
11 fmt.Println("update repository failed:", err)
12 return
13}
14
15fmt.Println("updated repository:", resp.RepositoryName)
16fmt.Println("updated description:", resp.Description)
DeleteRepository
如下代码可以删除镜像仓库 :
Go
1instanceID := "ccr-xxxxxxxx"
2projectName := "demo-project"
3repositoryName := "repo-to-delete"
4
5err := ccrClient.DeleteRepository(instanceID, projectName, repositoryName)
6if err != nil {
7 fmt.Println("delete repository failed:", err)
8 return
9}
10
11fmt.Println("delete repository success")
BatchDeleteRepositories
如下代码可以批量删除镜像仓库:
Go
1instanceID := "ccr-xxxxxxxx"
2projectName := "demo-project"
3
4args := &eccr.BatchDeleteRepositoriesArgs{
5 Items: []string{"repo-a", "repo-b"},
6}
7
8err := ccrClient.BatchDeleteRepositories(instanceID, projectName, args)
9if err != nil {
10 fmt.Println("batch delete repositories failed:", err)
11 return
12}
13
14fmt.Println("batch delete repositories success")
评价此篇文章
