我使用chrome websocket客户端扩展程序连接到正在运行的容器,调用Docker远程API,如下所示:
ws://localhost:2375/containers/34968f0c952b/attach/ws?stream=1&stdout=1
容器从我的机器本地启动,在图像中执行等待用户输入的jar。基本上我想从Web浏览器的输入字段提供此输入。
虽然我能够使用API端点进行附加,但我遇到了一些问题 - 可能是由于我对ws端点以及错误文档的理解不足 - 我想解决这个问题:
1)当使用chrome websocket客户端扩展发送数据时,框架似乎根据网络检查工具通过websocket传输。但是,在等待输入的容器中运行的进程仅在websocket连接关闭时接收所发送的数据 - 一次全部。这是标准行为吗?直观地说,您可能希望输入立即发送到流程。
2)如果我同时附加到stdin和stdout,则docker deamon卡住等待stdin附加,导致无法看到任何输出:
[debug] attach.go:22 attach: stdin: begin
[debug] attach.go:59 attach: stdout: begin
[debug] attach.go:143 attach: waiting for job 1/2
[debug] server.go:2312 Closing buffered stdin pipe
[error] server.go:844 Error attaching websocket: use of closed network connection
我已经为stdin和stdout解决了这个开放的两个独立连接,这有效,但真的很烦人。关于这个的任何想法?
提前致谢!