Docker 远程 API exec:命令退出代码
Docker Remote API exec: Command exit code
我正在使用 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
这个returns一个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
Host: myip:2375
User-Agent: curl/7.47.1
Accept: /
Content-Type: application/json
Content-Length: 28
HTTP/1.1 200 OK
Content-Type: application/vnd.docker.raw-stream
exec: "wrong": executable file not found in $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 docs。
我正在使用 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
这个returns一个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 Host: myip:2375 User-Agent: curl/7.47.1 Accept: / Content-Type: application/json Content-Length: 28
HTTP/1.1 200 OK Content-Type: application/vnd.docker.raw-stream exec: "wrong": executable file not found in $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 docs。