我正在尝试使用xterm.js及其'attach'插件将一个终端添加到Web应用程序中。我想要在Docker容器中运行一个进程,然后将xterm实例附加到容器的stdin/stdout。根据附加插件的示例,使用docker的websocket接口进行容器附加应该很简单。我还没有成功地实现这一点,但有可能这纯粹是我本地配置的问题。关于xterm.js的github问题有点含糊不清,它是否应该基于docker API的更改现在可以正常工作。有没有人在使用现代版本的docker时成功过?
这是我自己的 docker 配置问题...显然,附加插件(还有任何试图使用 websocket 进行附加的东西,比如 docker-py)不能使用默认的 dockerd socket(/var/run/docker.sock),因此你必须从另一个端口进行重定向,或者运行 docker 守护进程时使用 tcp socket 而不是 unix socket。你可以使用 socat 工具来做到这一点:socat TCP-LISTEN:2376,reuseaddr,fork UNIX-CLIENT:/var/run/docker.sock