在使用Golang Docker SDK时,调用ImagePull方法成功下载镜像后,镜像可能不会立即显示在docker images命令中。这是因为docker images命令只显示本地已经下载的镜像。

要在Golang Docker SDK中获取已下载的镜像列表,可以使用ImageList方法。但是,请确保在调用ImageList方法之前,已经等待足够的时间,以确保镜像已经完全下载并可用。

以下是一个示例代码,演示了如何使用Golang Docker SDK下载镜像并获取镜像列表:

package main

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

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

	// 下载镜像
	out, err := cli.ImagePull(ctx, "nginx", types.ImagePullOptions{})
	if err != nil {
		panic(err)
	}
	defer out.Close()

	// 等待镜像下载完成
	_, err = cli.ImageList(ctx, types.ImageListOptions{})
	if err != nil {
		panic(err)
	}

	// 获取镜像列表
	images, err := cli.ImageList(ctx, types.ImageListOptions{})
	if err != nil {
		panic(err)
	}

	// 打印镜像列表
	for _, image := range images {
		fmt.Println(image.RepoTags)
	}
}

确保在调用ImageList方法之前等待足够的时间,以便镜像下载完成。然后,您应该能够在控制台上看到已下载的镜像列表。

golang docker sdk中的ImagePull方法下载镜像成功但是docker images命令没有显示sdk中的ImageList方法也没有显示

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

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