繁体   English   中英

Docker远程API执行程序:命令退出代码

[英]Docker Remote API exec: Command exit code

我正在使用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 / start HTTP / 1.1主机:myip:2375用户代理:curl / 7.47.1接受: /内容类型:application / json内容长度:28

HTTP / 1.1 200 OK内容类型:application / vnd.docker.raw-stream exec:“错误”:在$ PATH中找不到可执行文件

状态码为200,是否还有另一种方法可以知道命令是否在exec上成功运行?

我当前的解决方法是将以下内容作为命令传递:

bash -c 'command && echo SUCCEEDED_FLAG || echo FAILED_FLAG' bash -c 'command && echo SUCCEEDED_FLAG || echo FAILED_FLAG'并稍后搜索标志

PS:我同时使用邮递员和curl对此进行了测试。

您应该检查exec结果:

curl -v -H "Content-Type: application/json" http://localhost:2375/exec/b64592543bc59e08de4d1d11c8a68415148a608b00aa62448284635f47eaa734/json 

并检查ExitCode的值以获取您运行的进程的退出代码。 有关更多详细信息,请参见exec inspect api文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM