猿问

是否有 docker API 或 exec.Command 方法可以从给定的容器名称中检索容器

我正在为 docker 容器开发一个 go CUI。我只需要选定容器名称的容器 ID。


我试过这样:


  id, err := exec.Command("/bin/sh", "-c", "docker", fmt.Sprintf("ps --no-trunc -aqf name=%s"),conName).Output()

  if err != nil {

         log.Fatal(err)

  }

  fmt.Println("CONTAINER ID:", id)

输出:


CONTAINER ID: []


吃鸡游戏
浏览 137回答 1
1回答

缥缈止盈

这对我有用(可能你不需要sudo):id, err := exec.Command("sudo", "docker", "ps", "--no-trunc", "-aqf", fmt.Sprintf("name=%s",conName)).Output()if err != nil {    log.Fatal(err)}fmt.Println("CONTAINER ID:", string(id))您的错误是, conName 不在括号内,您还必须将 id 转换为字符串,因为 exec.Command 返回一个字节数组。此外,所有参数都应单独列出,如果您将多个用空格分隔的参数作为一个字符串放置,它将不起作用。
随时随地看视频慕课网APP

相关分类

Go
我要回答