如果你用过 k9s 管理 Kubernetes,一定会怀念那种全键盘驱动、信息密度极高的终端操作体验。ducker 把这个理念带到了 Docker 世界——一个为终端爱好者打造的容器管理 TUI 工具。

项目概览

属性内容
GitHubrobertpsoane/ducker
Stars882
语言Rust
特点k9s 风格、键盘驱动、实时刷新
许可证MIT
最后更新2025年4月25日

它解决了什么问题

Docker 的官方 CLI 功能完整,但在日常管理场景里有些笨拙:

  • docker ps 看一眼容器状态,然后 docker logs <id> 看日志,再 docker exec -it <id> sh 进去调试——命令切来切去
  • Docker Desktop 图形界面够直观,但终端和 GUI 之间来回切换打断心流
  • Portainer 功能强大,但本地开发环境为了管理几个容器就起一个 Web 服务,有点小题大做

ducker 的定位很明确:在终端里完成 90% 的日常容器管理工作,不用记复杂的命令组合,也不需要离开当前的终端上下文。

核心特性

⌨️ 全键盘操作

ducker 继承了 k9s 的交互范式,所有操作都有对应的快捷键:

快捷键功能
?显示帮助
l查看容器日志
e进入容器 shell
r重启容器
d删除容器
s停止容器
/搜索过滤
q / Ctrl+c退出

这种设计让熟练用户几乎不用动鼠标,眼不离屏就能完成容器管理。

📊 信息密度

一屏之内你能看到:

  • 所有容器的运行状态、端口映射、镜像版本
  • 实时更新的资源占用(CPU / 内存)
  • 最近的事件日志流

对于需要同时关注多个容器的场景(比如本地微服务开发),这种全景视图比命令行逐个查询高效得多。

🚀 快速跳转

找到目标容器通常只需要几下按键:

  • 输入 / 激活搜索
  • 输入容器名的任意部分(模糊匹配)
  • 回车选中,直接执行操作

不用复制粘贴容器 ID,也不用祈祷自动补全能认出你的命名规律。

快速开始

安装

# 使用 cargo
cargo install ducker

# 或从源码构建
git clone https://github.com/robertpsoane/ducker.git
cd ducker
cargo build --release

使用

# 启动 ducker
ducker

# 如果 Docker 需要 sudo 权限
ducker --sudo

同类工具对比

工具Stars类型特点适用场景
Portainer32k+Web UI功能全面,支持集群生产环境、团队协作
Lazydocker39k+TUI轻量,交互友好个人开发、快速查看
ducker882TUIk9s 风格,键盘优先终端重度用户

Portainer 太重,Lazydocker 虽好但交互风格偏「探索式」,ducker 则是为那些已经熟悉 k9s、想要一致操作体验的开发者准备的。

适合谁用

ducker 很适合:

  • 每天泡在终端里的开发者
  • 习惯了 k9s 的键盘操作,希望 Docker 管理有类似体验
  • 本地开发时需要频繁查看日志、进入容器调试
  • 不喜欢 Docker Desktop 的资源占用和上下文切换

ducker 不适合:

  • 需要可视化编排、网络拓扑图等高级功能
  • 团队协作场景下的权限管理
  • 完全不熟悉终端快捷键的用户

总结

ducker 代表了一种特定偏好的工作流选择:在终端里完成所有事,并且用最高效的方式完成。882 个 stars 说明它还不是大众工具,但对于目标用户群体来说,它填补了 Lazydocker 和「纯 CLI 命令」之间的空白。

如果你每天与 Docker 打交道,又恰好是 k9s 用户,ducker 值得花两分钟试试。它可能不会取代你所有的 Docker 管理工具,但在本地开发的日常场景里,它能让容器操作快很多。

属性内容
仓库https://github.com/robertpsoane/ducker
许可证MIT
语言Rust
维护者@robertpsoane