我正在使用 Go exec 包執(zhí)行docker pull debian命令:import ( "bufio" "os/exec" "strings")func main() { cmd := exec.Command("docker", "pull", "debian") stdout, _ := cmd.StdoutPipe() cmd.Start() scanner := bufio.NewScanner(stdout) for scanner.Scan() { fmt.Println(scanner.Text()) } return nil}但它從來沒有向我顯示進(jìn)度條。它僅在完全完成時(shí)顯示更新。對于超過 GB 的較大圖像,很難看出是否有進(jìn)展。這就是它所顯示的:e9afc4f90ab0: Pulling fs layere9afc4f90ab0: Verifying Checksume9afc4f90ab0: Download completee9afc4f90ab0: Pull complete是否可以獲得類似于我docker pull debian在終端中運(yùn)行時(shí)看到的輸出或可以用來顯示進(jìn)度的輸出?:e9afc4f90ab0: Downloading [==========> ] 10.73MB/50.39MB
1 回答

慕田峪4524236
TA貢獻(xiàn)1875條經(jīng)驗(yàn) 獲得超5個(gè)贊
正如大衛(wèi)提到的,您寧愿使用官方的 docker 引擎 SDK與 docker 交互。
初始化 docker 客戶端
cli, _ := client.NewClientWithOpts(client.FromEnv, client.WithAPIVersionNegotiation())
拉取圖片
reader, _ := cli.ImagePull(context.Background(), "hello-world", types.ImagePullOptions{})
解析json流
id, isTerm := term.GetFdInfo(os.Stdout)_ = jsonmessage.DisplayJSONMessagesStream(reader, os.Stdout, id, isTerm, nil)
當(dāng)您執(zhí)行docker pull hello-world時(shí),您將獲得與 docker cli 提供的相同輸出
- 1 回答
- 0 關(guān)注
- 325 瀏覽
添加回答
舉報(bào)
0/150
提交
取消