在使用Golang Docker SDK的Imagelist方法时,它默认只会展示打了标签的镜像。如果你想展示所有镜像,包括原始镜像和打标签的镜像,你可以使用docker.ImageListOptions结构体中的All字段来实现。

下面是一个示例代码,展示如何使用All字段来获取所有镜像列表:

package main

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

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

	// 设置All字段为true,以获取所有镜像
	options := types.ImageListOptions{
		All: true,
	}

	images, err := cli.ImageList(context.Background(), options)
	if err != nil {
		panic(err)
	}

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

在上述示例中,我们创建了一个ImageListOptions结构体,并将其中的All字段设置为true。然后,我们使用cli.ImageList方法来获取所有镜像的列表,并遍历打印每个镜像的ID。

这样,你就可以获取到所有镜像,包括原始镜像和打了标签的镜像。

如果用docker tag命令给镜像打标签但是golang docker sdk中的Imagelist方法只会展示打标签后的镜像没有把原始镜像和打标签镜像都展示

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

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