【发布时间】:2016-09-20 22:45:06
【问题描述】:
我正在使用 Docker Remote API 运行一些命令,我意识到即使我传递给它的命令失败,状态也是 200。
例子:
curl -H "Content-Type: application/json" -X POST -d '{"AttachStdin":false,"AttachStdout":true,"AttachStderr":true,"Tty":true,"Cmd":["wrong"]}' http://localhost:2375/containers/console/exec
这会返回一个 ID。
curl -v -H "Content-Type: application/json" -d '{"Detach":false,"Tty":false}' http://localhost:2375/exec/b64592543bc59e08de4d1d11c8a68415148a608b00aa62448284635f47eaa734/start
POST /exec/b64592543bc59e08de4d1d11c8a68415148a608b00aa62448284635f47eaa734/启动 HTTP/1.1 主机:myip:2375 用户代理:curl/7.47.1 接受:/ 内容类型:应用程序/json 内容长度:28
HTTP/1.1 200 正常 内容类型:application/vnd.docker.raw-stream exec:“错误”:$PATH 中找不到可执行文件
状态码是200,那么有没有其他方法可以知道命令在exec上运行是否成功?
我目前的解决方法是将这样的东西作为命令传递:
bash -c 'command && echo SUCCEEDED_FLAG || echo FAILED_FLAG'
稍后再搜索flag
PS:我同时使用了 postman 和 curl 来测试这个。
【问题讨论】:
标签: curl docker docker-api