我正在为 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 返回一个字节数组。此外,所有参数都应单独列出,如果您将多个用空格分隔的参数作为一个字符串放置,它将不起作用。
- 1 回答
- 0 关注
- 136 浏览
添加回答
举报
0/150
提交
取消