Docker Remote API exec:命令退出代码



我正在使用Docker远程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用户代理:旋度/7.47.1接受:/内容类型:application/json内容长度:28日

HTTP/1.1 200 OK内容类型:应用程序/vnd.docker.raw-streamexec: "wrong": $PATH

中没有可执行文件

状态码是200,那么是否有其他方法可以知道命令在exec上运行是否成功?

我当前的解决方法是像这样传递命令:

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

PS:我使用了postman和curl来测试这个

您应该检查执行结果:

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

并检查ExitCode的值,以获得所运行进程的退出代码。查看exec inspect api文档了解更多细节

最新更新