Golang Docker SDK: 获取 CentOS 镜像仓库地址
要获取到'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镜像的仓库地址。
原文地址: https://www.cveoy.top/t/topic/fKlF 著作权归作者所有。请勿转载和采集!