要获取其中current和total的数据,可以使用Docker SDK for Go来实现。以下是一个示例代码:

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

	imageName := "your_image_name"
	resp, err := cli.ImagePull(context.Background(), imageName, types.ImagePullOptions{})
	if err != nil {
		panic(err)
	}

	defer resp.Close()

	decoder := json.NewDecoder(resp)
	var pullStatus types.JSONMessage
	for {
		err := decoder.Decode(&pullStatus)
		if err != nil {
			break
		}

		if pullStatus.ProgressDetail != nil {
			fmt.Printf("Current: %d, Total: %d\n", pullStatus.ProgressDetail.Current, pullStatus.ProgressDetail.Total)
		}
	}
}

上述代码使用Docker SDK for Go中的ImagePull方法来拉取镜像,并通过ProgressDetail字段获取当前和总的进度数据。在示例代码中,我们使用了json.Decoder来解析Docker返回的JSON消息,并提取所需的进度数据。

请注意,为了运行此示例,您需要在代码中替换your_image_name为您要拉取的镜像名称。

statusLoading layerprogressDetailcurrent230592000total230592000progress==================================================u003e 2306MB2306MBid0c074c40f50agolang如何获取其中current和total的数据请用golang写个示例

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

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