要获取到'https://registry.hub.docker.com/_/centos/' 这个镜像仓库地址,可以使用golang的docker sdk来实现。

首先,你需要导入docker sdk的包:

import (
    "github.com/docker/docker/client"
    "context"
)

然后,创建一个docker客户端:

cli, err := client.NewClientWithOpts(client.FromEnv)
if err != nil {
    panic(err)
}

接下来,使用cli.ImageList方法来获取所有的镜像列表:

images, err := cli.ImageList(context.Background(), types.ImageListOptions{})
if err != nil {
    panic(err)
}

遍历镜像列表,找到centos镜像:

for _, image := range images {
    for _, tag := range image.RepoTags {
        if tag == "centos" {
            fmt.Println(image.ID)
            fmt.Println(image.RepoDigests)
            break
        }
    }
}

最后,你可以从image.RepoDigests中获取到centos镜像的仓库地址。

完整的代码示例:

package main

import (
    "fmt"
    "github.com/docker/docker/api/types"
    "github.com/docker/docker/client"
    "context"
)

func main() {
    cli, err := client.NewClientWithOpts(client.FromEnv)
    if err != nil {
        panic(err)
    }

    images, err := cli.ImageList(context.Background(), types.ImageListOptions{})
    if err != nil {
        panic(err)
    }

    for _, image := range images {
        for _, tag := range image.RepoTags {
            if tag == "centos" {
                fmt.Println(image.ID)
                fmt.Println(image.RepoDigests)
                break
            }
        }
    }
}

运行以上代码,你将能够获取到centos镜像的仓库地址。

Golang Docker SDK: 获取 CentOS 镜像仓库地址

原文地址: https://www.cveoy.top/t/topic/fKlF 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录