当我们想进入某个容器内部的时候,通常会执行这个命令组合 docker ps | grep xxx
&& docker exec -ti xxxx sh
,
但老这样敲也是很烦,也许你可以试一下这个项目。
虽然我很喜欢终端,但是我仍然希望有一个更好的工具来进入容器内部去做一些检查或者debug。所以我写了这个项目,它能够帮助你通过点击网页的方式 进到容器里执行命令。初版的代码是基于yudai/gotty这个项目的,感谢yudai。
后端可以对接docker或者kubectl。
你可以从release页面下载二进制运行这个程序,但这里有一些“复制粘贴”的方法。
把docker.sock
挂在到容器里就完事儿了
docker run --rm -ti --name web-tty \
-p 8080:8080 \
-v /var/run/docker.sock:/var/run/docker.sock \
wrfly/container-web-tty
你需要把kubernetes的配置文件挂进去,默认是在 $HOME/.kube/config
,然后指定一下backed的类型,也就是kube
docker run --rm -ti --name web-tty \
-p 8080:8080 \
-e WEB_TTY_BACKEND=kube \
-e WEB_TTY_KUBE_CONFIG=/kube.config \
-v ~/.kube/config:/kube.config \
wrfly/container-web-tty
当我们有很多server需要接入的时候,就可以使用这种模式把远程的container-web-tty
们
merge 到一起,典型的CS模式,通过gRPC通信。
在一个界面上查看多台机器上的容器。
假如有两台机器 192.168.66.1
和 192.168.66.2
,他们可以用如下的命令来启动container-web-tty
docker run --rm -ti --name web-tty \
-p 8080:8080 \
-p 8090:8090 \
-e WEB_TTY_GRPC_PORT=8090 \
-e WEB_TTY_GRPC_AUTH=96ssW0rd \
-v /var/run/docker.sock:/var/run/docker.sock \
wrfly/container-web-tty
注意:
WEB_TTY_PORT=-1
的方式来关闭HTTPserver,拒绝一般接入WEB_TTY_GRPC_AUTH
key 在所有机器上必须要相同(目前)docker run --rm -ti --name web-tty \
-p 8080:8080 \
-e WEB_TTY_BACKEND=grpc \
-e WEB_TTY_GRPC_AUTH=96ssW0rd \
-e WEB_TTY_GRPC_SERVERS=192.168.66.1:8090,192.168.66.2:8090 \
wrfly/container-web-tty
现在你就可以通过访问 http://localhost:8080 来获取两台机器上所有的容器
Ctrl+w
=> You cannot do it for now (I'll working on it for Ctrl+Backspace
, but I know little about js)Ctrl+Shift+c
=> Ctrl+Insert
Ctrl+Shift+v
=> Shift+Insert
列出所有容器:
在选择shell的时候,优选选择bash,如果没有,就依次选择ash,sh,再没有就退出了。
/bin/sh
:
/bin/bash
:
运行指定命令:
查看容器日志:
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。