Thy*_*rel 6 api input websocket docker
我正在使用 chrome websocket 客户端扩展附加到一个正在运行的容器,调用 Docker 远程 API,如下所示:
ws://localhost:2375/containers/34968f0c952b/attach/ws?stream=1&stdout=1
Run Code Online (Sandbox Code Playgroud)
容器从我的机器本地启动,在等待用户输入的图像中执行 jar。基本上我想从网络浏览器的输入字段提供这个输入。
虽然我能够使用 API 端点进行附加,但我遇到了一些问题 - 可能是由于我对 ws 端点的缺乏了解以及糟糕的文档 - 我想解决这些问题:
1) 使用chrome websocket 客户端扩展发送数据时,根据网络检测工具,该帧似乎是通过websocket 传输的。但是,在容器中运行的等待输入的进程只在 websocket 连接关闭时接收发送的数据 - 一次完成。这是标准行为吗?直观地,您会期望输入立即发送到流程。
2) 如果我同时附加到 stdin 和 stdout,docker 守护进程会卡住等待附加 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
Run Code Online (Sandbox Code Playgroud)
我已经解决了为 stdin 和 stdout 打开两个单独连接的问题,这可行,但真的很烦人。关于这个有什么想法吗?
提前致谢!
| 归档时间: |
|
| 查看次数: |
1594 次 |
| 最近记录: |