可能是因为ImageList方法默认只返回本地镜像,而不包括从远程仓库拉取的镜像。你可以尝试使用ImageList方法的WithFilters选项来获取远程仓库的镜像。

例如,可以使用以下代码来获取所有镜像(包括本地和远程仓库的):

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)
	}

	images, err := cli.ImageList(ctx, types.ImageListOptions{All: true})
	if err != nil {
		panic(err)
	}

	for _, image := range images {
		fmt.Println(image.ID)
	}
}

这样就可以获取到所有镜像的列表,包括从远程仓库拉取的镜像。

golang docker sdk中用ImagePull方法下载的镜像显示下载成功打印出来的日志也是成功的但是docker images命令行和docker sdk中的ImageList方法输出的结果却没有这个镜像但是通过docker pull命令拉取镜像是有的

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

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