一个现代且快速的终端用户界面(TUI),用于管理Docker容器,使用Go和Bubbletea构建。

go install github.com/eviltik/docker-tui@latest
从发布页面下载预编译的二进制文件:
# Linux (amd64)
curl -L https://github.com/eviltik/docker-tui/releases/latest/download/docker-tui-linux-amd64.tar.gz | tar xz
sudo mv docker-tui /usr/local/bin/
# macOS (Apple Silicon)
curl -L https://github.com/eviltik/docker-tui/releases/latest/download/docker-tui-darwin-arm64.tar.gz | tar xz
sudo mv docker-tui /usr/local/bin/
# 克隆仓库
git clone https://github.com/eviltik/docker-tui.git
cd docker-tui
# 构建二进制文件
make build
# 系统范围安装(可选)
sudo make install
简单运行二进制文件:
./docker-tui
或者如果已系统范围安装:
docker-tui
docker-tui [OPTIONS]
选项:
--demo - 隐藏容器名称前缀(删除到第一个下划线之前的文本)- 适用于演示--debug-monitor - 显示调试指标(协程数、文件描述符、内存、活跃流)--logs-buffer-length SIZE - 日志缓冲区的最大行数(默认:10000,最小:100)--mcp-server - 启用MCP HTTP服务器(默认端口:9876)--mcp-port PORT - 设置MCP服务器端口(默认:9876)--help, -h - 显示带有所有选项和快捷键的帮助信息示例:
docker-tui # 正常模式运行
docker-tui --demo # 演示模式运行(干净的容器名称)
docker-tui --debug-monitor # 显示调试指标
docker-tui --logs-buffer-length 50000 # 使用5万行的日志缓冲区
docker-tui --mcp-server # 在9876端口上启用MCP服务器
docker-tui --mcp-server --mcp-port 9000 # 在自定义端口上启用MCP服务器
docker-tui --help # 显示帮助
| 键 | 动作 |
|---|---|
↑/↓ | 上下导航 |
PgUp/PgDown | 跳转10项 |
Home/End | 跳转到第一/最后一项 |
SPACE | 切换选择 |
Shift+↑/↓ | 范围选择 |
A | 选择所有容器 |
Ctrl+A | 选择所有正在运行的容器 |
X | 清除选择 |
I | 反转选择 |
ENTER 或 L | 显示所选容器的日志 |
S | 启动所选容器 |
K | 杀死(停止)所选容器 |
R | 重启所选容器 |
P | 暂停/取消暂停所选容器 |
D | 移除所选容器 |
/ | 过滤容器(支持正则表达式) |
M | 显示MCP服务器日志(当启用--mcp-server时) |
Q/ESC | 退出(带确认)或清除过滤 |
Ctrl+C | 立即退出 |
| 键 | 动作 |
|---|---|
↑/↓ | 按行滚动日志 |
PgUp/PgDown | 分页上下滚动 |
Home/End | 跳转到顶部/底部 |
ENTER | 插入时间戳标记 |
C | 切换彩色背景的开关 |
/ | 过滤日志(子字符串搜索) |
Q/ESC | 返回容器列表或清除过滤 |
| 键 | 动作 |
|---|---|
Y | 确认操作 |
N 或 Q/ESC | 取消 |
| 动作 | 效果 |
|---|---|
| 左键点击 | 移动光标并切换选择 |
| 双击 | 显示所点击容器的日志 |
| 鼠标滚轮上下 | 滚动容器列表 |
SPACE 切换单个容器Shift+↑/↓ 进行范围选择✓C 键切换彩色背景的开关(便于复制日志)ENTER 插入时间戳标记/ 键)容器列表过滤:
/ 进入过滤模式ENTER 应用过滤或按 ESC 取消日志过滤:
/ 进入过滤模式Q 或 ESC 清除过滤所有操作都支持单个和多个容器:
多容器操作(>1个选中)会显示一个确认对话框,列出受影响的容器。
所有崩溃都会自动捕获并记录到 /tmp/docker-tui-crash.log 中,包括:
如果Docker TUI崩溃,请检查崩溃日志以获取详细的诊断信息:
cat /tmp/docker-tui-crash.log
使用 --logs-buffer-length 自定义日志缓冲区大小:
docker-tui --logs-buffer-length 50000 # 5万行缓冲区
docker-tui --logs-buffer-length 1000 # 1千行缓冲区(低内存)
默认:10,000 行。最小:100 行。
更大的缓冲区允许查看更多的历史日志,但会消耗更多内存。根据需要和可用资源进行调整。
Docker TUI 包含一个内置的 MCP HTTP 服务器,它暴露了 Docker 容器管理能力给像 Claude Code 这样的AI助手。该服务器与 TUI 并行运行(或仅在 HTTP 模式下运行而无需 TTY),并提供了对容器操作和日志的程序化访问。
list_containers)list_containers - 列出所有 Docker 容器的状态和资源使用情况
get_logs - 搜索和获取容器日志,具有高级过滤功能
get_stats - 获取详细的资源统计信息
start_container - 启动已停止的容器
stop_container - 停止正在运行的容器
restart_container - 重启容器
# 启动 MCP 服务器
docker-tui --mcp-server --mcp-port 9876 &
# 添加到 Claude Code
claude mcp add-json docker-tui '{
"type": "http",
"url": "http://localhost:9876/mcp"
}'
添加到你的 ~/.claude.json:
{
"mcpServers": {
"docker-tui": {
"type": "http",
"url": "http://localhost:9876/mcp"
}
}
}
然后启动服务器:
docker-tui --mcp-server --mcp-port 9876
创建 .mcp.json 在你的项目中:
{
"mcpServers": {
"docker-tui": {
"type": "http",
"url": "http://localhost:9876/mcp"
}
}
}
安装完成后,你可以使用 Claude Code 测试每个工具。这里有一些示例提示:
展示我所有的正在运行的 Docker 容器
列出所有容器,包括已停止的
查找名称中含有 "nginx" 的容器
展示我的 nginx 容器最后50行日志
获取 redis 容器的日志并过滤错误
展示所有名称匹配 "api" 的容器的日志,其中包含 "WARNING"
获取 mongodb 容器最后10行日志,使用正则表达式过滤 "connection.*failed"
我的运行容器的 CPU 使用率是多少?
展示 postgres 容器的详细统计信息,包括 CPU 历史
获取所有名称匹配 "web" 的容器的资源使用情况
启动 nginx 容器
启动名称中含有 "test" 的所有容器
优雅地停止 redis 容器
停止名称匹配 "dev" 的所有容器
重启 mongodb 容器
重启所有 api 容器
列出所有正在运行的容器,然后显示使用最多 CPU 的容器的日志
查找名称中含有 "staging" 的容器,获取它们的统计信息,并重启任何 CPU 使用率超过80%的容器
展示所有已停止的容器,然后启动名称中含有 "service" 的容器
在没有TTY的环境中(如 Docker 或 systemd),服务器会自动进入 HTTP-Only 模式:
# 在 Docker 容器或后台服务中
docker-tui --mcp-server --mcp-port 9876
# 输出:正在以 HTTP-Only 模式运行(未检测到 TTY)
/var/run/docker.sock)# 为当前平台构建
make build
# 不构建直接运行
make run
# 为所有平台构建
make dist-all
# 清理构建产物
make clean
# 运行测试
make test
# 格式化代码
make fmt
如果你在访问 Docker 套接字时遇到“权限被拒绝”:
# 将你的用户添加到 docker 组
sudo usermod -aG docker $USER
# 或者使用 sudo 运行(不推荐)
sudo ./docker-tui
确保 Docker 守护进程正在运行:
# 检查 Docker 状态
systemctl status docker
# 启动 Docker
sudo systemctl start docker
欢迎贡献!请随时提交 Pull Request 或通过打开问题来提出改进建议。
MIT 许可证 - 详情见 LICENSE 文件
eviltik