有时候使用 docker 时,发现要执行 exec 很不方便,得先 docker ps,拿到 containerID 之后得 copy paste 等等,于是做了这个工具。
这是一个简单的 docker 工具,用来替代 docker exec -it xxxx bash
这个命令。
🎉🎉🎉 有了这个工具,节省下来的时间又可以摸 5 秒钟 🐟 啦啦啦~ 🎉🎉🎉
灵感来源于 devspace enter 命令,之前写的 sshw scp 扩展也是这个处理方法,还是挺方便的。
-
到 release 页面,下载符合自己版本的文件
-
将二进制文件移动到 bin 下
sudo mv denter_mac_vx.x /usr/local/bin/
- 输入
denter
(当然了,你得打开 docker 先~)
- 扩展为 docker 子命令的方式, 或者 docker wrapper?
其实不仅 docker exec 需要知道容器的名字,还有一些其他场景同样需要 容器名 或者 镜像名 或者 网络名 等等,按照这个工具所提供价值的基本原因 (把 填空题 变为 选择题),很多场景都可以使用这种方式进行优化。
docker 中的例子: docker cp
docker export
docker inspect
docker kill
docker logs
docker rm
docker rmi
docker save
docker export
docker tag
docker attach
docker network
docker run
docker logs
helm 中的例子: fetch
install
kubectl 中的例子: kubectl cp
kubectl exec
kubectl logs
kubectl describe
……
从这种交互方式更近一步,就是类似于 k9s、glances、top 这种直接以 terminal 为 UI 界面的终端交互方式。
另外,从 dcenter 的模式上,可以类似于 docker 的 exec 命令代理,站在代理的角度,可以扩展一些思路: ① 本地命令转换的代理 ② 基于网络的终端代理。 可以想象一下,我们在本地,配置好远端的代理后,就可以直接使用 denter 在远端的机器上执行 docker exec,是不是有点小意思了?
之后空了可以考虑下更近一步做点
有任何建议,欢迎提哈 ~ 😁
我让 chatGPT 写一个 docker 的子命令,可以选择容器,然后他给了一个 bash,直接用 fzf 这个工具完成选择,哭死
用的时候,可以把 denter.sh
移动到 /usr/local/bin/denter
,然后就可以用了
但前提是要装 fzf, 可以这样 vendor/fzf/install --no-key-bindings --completion --update-rc
然后就好了……