golang的docker sdk中有没有不用拉取latest版本镜像就可以获取到latest版本镜像的id呢
是的,golang的docker sdk中提供了获取镜像信息的接口,可以通过该接口获取到镜像的ID等信息,而不需要先拉取最新版本的镜像。具体可以使用以下代码实现:
import (
"context"
"github.com/docker/docker/api/types"
"github.com/docker/docker/client"
)
func getLatestImageID(imageName string) (string, error) {
ctx := context.Background()
cli, err := client.NewEnvClient()
if err != nil {
return "", err
}
imageList, err := cli.ImageList(ctx, types.ImageListOptions{All: true})
if err != nil {
return "", err
}
for _, image := range imageList {
for _, tag := range image.RepoTags {
if tag == imageName+":latest" {
return image.ID, nil
}
}
}
return "", nil
}
其中,imageName为镜像名称(不包含版本号),函数返回最新版本镜像的ID。如果没有找到该镜像,则返回空字符串
原文地址: https://www.cveoy.top/t/topic/fePw 著作权归作者所有。请勿转载和采集!