有人可以帮助我使用远程api来为docker exec运行命令吗?
我可以直接运行它:
# docker exec 941430a3060c date
Fri Apr 29 05:18:03 UTC 2016
答案 0 :(得分:1)
可以帮助您的API部分是:Exec Create/Start
您可以在integration-cli/docker_api_exec_test.go
sockRequest("POST", fmt.Sprintf("/containers/%s/exec", name), map[string]interface{}{"Cmd": []string{"true"}})
sockRequestRaw("POST", fmt.Sprintf("/exec/%s/start", id), strings.NewReader(`{"Detach": true}`), "application/json")
sockRequestRaw("GET", fmt.Sprintf("/exec/%s/json", id), nil, "")
答案 1 :(得分:1)
您必须按照以下步骤操作。我正在添加休息api方式。您可以将其编码为任何语言。
POST / containers /(id或name)/ exec
体
{
"AttachStdin": false,
"AttachStdout": true,
"AttachStderr": true,
"Cmd": ["bash","-c","echo '*/5 * * * * /usr/bin/php /app/yii cronrun/job001'>> /var/spool/cron/crontabs/root"]
}
您必须选择Content-Type: application/json
当你发布上述数据时,你会得到id作为回应。您必须在下一步中使用该ID。
*以上将在容器中添加cron作业,每隔五分钟执行一次。
POST / exec /(id)/ start
{
"Detach": false,
"Tty": false
}
您必须选择Content-Type: application/json
检查响应代码,200就可以了