将 xterm.js 附加到 Docker 容器

Attach xterm.js to Docker container

我正在尝试使用 xterm.js 及其 'attach' 插件将终端添加到 Web 应用程序。我只想在 Docker 容器中有一个进程 运行,然后将 xterm 实例附加到容器的 stdin/stdout。 example for the attach addon 表示使用 websocket 接口与 docker 连接容器应该很简单。

我还没有能够成功地做到这一点,但这可能纯粹是我本地配置的问题。根据对 docker API 的更改,github issue for xterm.js 让它现在是否应该真正起作用有点模棱两可。有没有人使用 docker 的现代版本成功地做到了这一点?

这是我这边的 docker 配置问题...

显然附加插件(以及任何其他试图附加到 websocket 的东西,例如 docker-py)不适用于默认的 dockerd 套接字(/var/run/docker .sock),因此您必须从另一个端口或 运行 docker 守护程序从 tcp 套接字而不是 unix 套接字重定向。您可以使用 socat 工具执行此操作:

socat TCP-LISTEN:2376,reuseaddr,fork UNIX-CLIENT:/var/run/docker.sock