是的,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 著作权归作者所有。请勿转载和采集!

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