Token导航 LogoToken导航TokenDH.com
Docker Tui logo
开发工具未说明官方级别未说明来源级核验

Docker Tui

MCP Server

一个基于Go和Bubbletea构建的现代化、快速的终端用户界面,用于管理Docker容器,支持实时日志流、CPU监控和多容器操作。

工具数

0

提示词数

0

GitHub Stars

4

资源数

0
容器管理开发工具GoClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

eviltik

提供方

eviltik

最后核验

2026/5/17 20:22

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Docker TUI

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

MCP Server License

特性

  • 🐳 容器管理(启动/停止/重新启动/暂停/删除)
  • 📋 使用正则表达式过滤的实时日志流
  • 📊 每个容器的CPU监控
  • 🖱️ 鼠标和键盘支持
  • 🤖 用于Claude Desktop集成的MCP服务器
  • 💾 单一二进制文件,无依赖关系

Demo

安装

通过go安装

go install github.com/eviltik/docker-tui@latest

来自GitHub发布

从下载预构建的二进制文件 发布页面:

# 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/

来源

# Clone the repository
git clone https://github.com/eviltik/docker-tui.git
cd docker-tui

# Build the binary
make build

# Install system-wide (optional)
sudo make install

用法

只需运行二进制文件:

./docker-tui

或者,如果已在系统范围内安装:

docker-tui

命令行选项

docker-tui [OPTIONS]

选项:

  • --demo -隐藏容器名称前缀(删除第一个下划线以下的文本)-对演示文稿很有用
  • --debug-monitor -显示调试指标(goroutines、文件描述符、内存、活动流)
  • --logs-buffer-length SIZE -缓冲区中的最大日志行数(默认值:10000,最小值:100)
  • --mcp-server -在TUI旁边启用MCP HTTP服务器(默认端口:9876)
  • --mcp-port PORT -设置MCP服务器端口(默认值:9876)
  • --help, -h -显示包含所有选项和键盘快捷键的帮助消息

示例:

docker-tui                                    # Run in normal mode
docker-tui --demo                             # Run in demo mode (clean container names)
docker-tui --debug-monitor                    # Run with debug metrics displayed
docker-tui --logs-buffer-length 50000         # Use 50k lines buffer for logs
docker-tui --mcp-server                       # Run with MCP server on port 9876
docker-tui --mcp-server --mcp-port 9000       # Run with MCP server on custom port
docker-tui --help                             # Show help

键盘快捷键

容器列表视图

关键行动
↑/↓向上/向下导航
PgUp/PgDown跳10个项目
Home/End跳到第一个/最后一个
SPACE切换选择
Shift+↑/↓范围选择
A选择所有容器
Ctrl+A选择所有正在运行的容器
X清除选择
I反转选择
ENTERL显示所选容器的日志
S启动所选容器
K杀死(停止)所选容器
R重新启动所选容器
P暂停/取消暂停所选容器
D删除所选容器
/过滤容器(正则表达式支持)
M显示MCP服务器日志(当 --mcp-server 处于活动状态)
Q/ESC退出(确认)或清除过滤器
Ctrl+C立即退出

日志视图

关键行动
↑/↓逐行滚动日志
PgUp/PgDown向上/向下翻页
Home/End跳到顶部/底部
ENTER插入时间戳标记
C打开/关闭彩色背景
/筛选日志(子字符串搜索)
Q/ESC返回容器列表或清除过滤器

确认对话框

关键行动
Y确认操作
NQ/ESC取消

鼠标支持

动作效果
左键单击移动光标并切换选择
双击显示已单击容器的日志
鼠标滚轮向上/向下滚动浏览容器列表

详细功能

多容器选择

  • 使用 SPACE 切换单个容器
  • 使用 Shift+↑/↓ 用于范围选择
  • 用鼠标单击以选择容器
  • 选定的容器用黄色标记
  • 操作适用于所有选定的容器

鼠标交互

  • 单击一次:将光标移动到容器并切换选择
  • 双击:立即显示所单击容器的日志
  • 鼠标滚轮:在容器列表中向上/向下滚动
  • 与键盘快捷键无缝配合使用

日志流

  • 同时查看多个容器中的日志
  • 每行日志都显示了带有彩色背景的容器名称,以便于识别
  • 使用打开/关闭彩色背景 C key(用于复制日志)
  • 容器名称对齐以提高可读性
  • 如果你在底部,日志会自动滚动
  • ENTER 插入时间戳标记
  • 容器重新启动时自动重新连接
  • 使用子字符串搜索进行实时过滤(/ 按键)

过滤

容器列表筛选:

  • / 进入过滤模式
  • 支持正则表达式模式(不区分大小写)
  • 无效的正则表达式模式以红色突出显示
  • ENTER 应用过滤器或 ESC 取消
  • 过滤器显示在标题栏中,带有🔍 图标
  • 隐藏容器计数显示在统计数据中

日志筛选:

  • / 进入过滤模式
  • 使用不区分大小写的子字符串搜索
  • 当您键入时,过滤会实时进行
  • 过滤器适用于日志内容(ANSI代码被剥离以进行准确匹配)
  • QESC 清除过滤器

容器操作

所有操作都支持单容器和多容器操作:

  • 开始:启动已停止的容器
  • 停止:优雅地停止运行容器(超时10秒)
  • 重启:重新启动容器(超时10秒)
  • 暂停/取消审核:智能切换-暂停正在运行的容器,取消暂停的容器
  • 移除:强制移除容器(需确认)

多容器操作(选择>1个)显示一个确认对话框,其中包含受影响的容器列表。

崩溃记录

所有恐慌都会被自动捕获并记录到 /tmp/docker-tui-crash.log 与:

  • 崩溃的goroutine和所有其他goroutine的全栈跟踪
  • 系统指标(goroutines、文件描述符、内存、GC统计数据)
  • Goroutine名称标识,便于调试
  • 时间戳和错误详细信息

如果Docker TUI崩溃,请查看崩溃日志以获取详细的诊断信息:

cat /tmp/docker-tui-crash.log

可配置日志缓冲区

使用自定义日志缓冲区大小 --logs-buffer-length:

docker-tui --logs-buffer-length 50000  # 50k lines buffer
docker-tui --logs-buffer-length 1000   # 1k lines buffer (low memory)

默认值:10000行。最少:100行。

更大的缓冲区允许查看更多的历史日志,但会消耗更多的内存。根据您的需求和可用资源进行调整。

MCP服务器(模型上下文协议)

Docker TUI包括一个内置的MCP HTTP服务器,该服务器将Docker容器管理功能暴露给Claude Code等AI助手。服务器与TUI一起运行(或在没有TTY的仅HTTP模式下运行),并提供对容器操作和日志的编程访问。

特性

  • HTTP传输:基于HTTP的JSON-RPC 2.0,支持服务器发送事件(SSE)
  • 无状态模式:每个请求都是独立的,不需要会话管理
  • 6强大的工具:完整的容器生命周期管理
  • 实时日志流:用于高效日志访问的共享LogBroker架构
  • 自动刷新:容器列表每5秒更新一次
  • CORS已启用:与基于网络的人工智能助手配合使用
  • 高性能:缓存用于即时响应的CPU统计数据(list_containers为~6ms)

可用工具

  1. 列表_容器 -列出所有Docker容器的状态和资源使用情况

- 按状态筛选(运行/停止/全部) - 按名称筛选(不区分大小写的子字符串) - 返回:容器ID、名称、状态、状态、CPU%、日志速率、端口

  1. get_logs -使用高级过滤搜索和获取容器日志

- 全局搜索:将“容器”留空,以便在所有容器中搜索 - 支持正则表达式或子字符串过滤(关键字如“error”、“warn”) - 可配置的行限制(默认值:100,最大值:10000) - 自动ANSI代码剥离,实现精确过滤 - 返回:带有容器名称前缀的格式化日志

  1. get_stats -获取详细的资源统计信息

- 实时CPU使用率百分比 - 可选10值CPU历史记录 - 记录速率(行/秒) - 当前状态和端口

  1. start_container -启动已停止的容器

- 支持部分名称匹配 - 对多个容器进行批量操作 - 返回:每个容器的成功/失败状态

  1. 停止容器 -停止运行容器

- 10秒优雅超时 - 批量操作支持 - 返回:每个容器的成功/失败状态

  1. restart_container -重新启动容器

- 10秒超时 - 适用于任何容器状态 - 返回:每个容器的成功/失败状态

使用Claude代码进行安装

方法1:命令行(推荐)

# Start the MCP server
docker-tui --mcp-server --mcp-port 9876 &

# Add to Claude Code
claude mcp add-json docker-tui '{
  "type": "http",
  "url": "http://localhost:9876/mcp"
}'

方法2:配置文件

添加到您的 ~/.claude.json:

{
  "mcpServers": {
    "docker-tui": {
      "type": "http",
      "url": "http://localhost:9876/mcp"
    }
  }
}

然后启动服务器:

docker-tui --mcp-server --mcp-port 9876

方法3:项目级配置

创建 .mcp.json 在您的项目中:

{
  "mcpServers": {
    "docker-tui": {
      "type": "http",
      "url": "http://localhost:9876/mcp"
    }
  }
}

测试MCP服务器

安装后,您可以使用Claude Code测试每个工具。以下是示例提示:

1.列出容器

Show me all my running Docker containers
List all containers including stopped ones
Find containers with "nginx" in their name

2.获取日志

Show me the last 50 lines of logs from my nginx container
Get logs from redis container and filter for errors
Show me logs from all containers matching "api" with lines containing "WARNING"
Get the last 10 lines from mongodb container using regex filter for "connection.*failed"

3.获取统计数据

What's the CPU usage of my running containers?
Show me detailed stats with CPU history for the postgres container
Get resource usage for all containers matching "web"

4.启动容器

Start the nginx container
Start all containers with "test" in their name

5.停止集装箱

Stop the redis container gracefully
Stop all containers matching "dev"

6.重新启动容器

Restart the mongodb container
Restart all api containers

高级多工具工作流

List all running containers, then show me logs from the one using the most CPU
Find containers with "staging" in the name, get their stats, and restart any that are using more than 80% CPU
Show me all stopped containers, then start the ones that contain "service" in their name

仅HTTP模式

当在没有TTY的环境中运行时(如Docker或systemd),服务器会自动以仅HTTP模式运行:

# In a Docker container or background service
docker-tui --mcp-server --mcp-port 9876
# Output: Running in HTTP-only mode (no TTY detected)

建筑

  • 运输:来自的StreamableHTTPServerTransport 去mcp
  • 协议:支持SSE的JSON-RPC 2.0
  • 日志流:与TUI共享LogBroker实例
  • CPU统计缓存:共享缓存每5秒更新一次,以获得即时MCP响应
  • 自动发现:容器列表每5秒刷新一次
  • 优雅关闭:正确清理信号/信号机

发展

先决条件

  • 达到1.24或更高
  • Docker已安装并正在运行
  • 访问Docker套接字(/var/run/docker.sock)

建筑

# Build for current platform
make build

# Run without building
make run

# Build for all platforms
make dist-all

# Clean build artifacts
make clean

# Run tests
make test

# Format code
make fmt

故障排除

权限不足

如果你在访问Docker套接字时遇到“权限被拒绝”的情况:

# Add your user to docker group
sudo usermod -aG docker $USER

# Or run with sudo (not recommended)
sudo ./docker-tui

Docker未运行

确保Docker守护进程正在运行:

# Check Docker status
systemctl status docker

# Start Docker
sudo systemctl start docker

贡献

欢迎投稿!请随时提交Pull Request或通过打开工单提出改进建议。

许可证

MIT许可证-请参阅 许可证 详细信息文件

作者

埃维蒂克

致谢

目录标签

目录标签

容器管理开发工具GoClaude本地部署终端界面实时日志性能监控

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP