为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Go
吃鸡游戏 2022-06-27 17:23:03
我正在为 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: []
查看完整描述

1 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

这对我有用(可能你不需要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 返回一个字节数组。此外,所有参数都应单独列出,如果您将多个用空格分隔的参数作为一个字符串放置,它将不起作用。


查看完整回答
反对 回复 2022-06-27
  • 1 回答
  • 0 关注
  • 136 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信