dtop 使用指南:Dozzle 的终端实时容器监控搭档
【免费下载链接】dozzleRealtime log viewer for containers. Supports Docker, Swarm and K8s.项目地址: https://gitcode.com/GitHub_Trending/do/dozzle
dtop是 Dozzle 官方文档中推荐使用的命令行搭档工具,它把"当前机器上哪些容器在运行、有没有出问题"这件事带进终端,以实时刷新的方式呈现,可以常驻在 tmux 窗格里随时瞄一眼。本文基于本仓库的 dtop 文档(法语版、中文版与英文版内容一致),结合 Dozzle 仓库中的连接与检索相关实现,说明 dtop 的定位、安装方式、连接模型,以及它与 Dozzle 浏览器端功能的分工边界,读完后你将清楚什么场景该用 dtop、什么场景该切回 Dozzle。
dtop 是什么:比 docker ps 更丰富的实时容器视图
按照 Dozzle 仓库 README 的介绍,dtop 是 "a top-like application for monitoring Docker containers",即一款用于监控 Docker 容器的 top 风格应用,并且它与 Dozzle 集成,可以"直接链接到容器日志"。更通俗地说,官方文档把它定位为docker ps的增强版(richerdocker ps):
- 实时性:与
docker ps的一次性快照不同,dtop 会持续刷新,动态展示系统上正在运行的 Docker 容器,适合长期挂在终端里观察变化; - 常驻场景:文档特别建议把它"留在一个 tmux 窗格里"(leave open in a tmux pane),配合 tmux 的分屏与会话保持能力,运维人员可以在一个终端会话里持续盯住容器状态,而无需反复敲命令或切换页面;
- 与 Dozzle 打通:当你在终端里发现某个容器需要进一步排查时,dtop 支持直接跳转到 Dozzle 查看该容器的完整日志,实现"终端概览 → 浏览器深挖"的工作流(见 README 中 "It integrates with Dozzle to link directly to container logs" 的说明)。
需要说明的是,dtop 是一个独立于 Dozzle 的伴生项目:它在独立仓库中开发、按自己的节奏发布。本文描述的是 Dozzle 官方文档视角下的 dtop,其具体快捷键、界面布局等细节以 dtop 自身仓库的发布版本为准。
连接方式:ssh、tcp 与本地 unix socket
dtop 支持三种方式连接 Docker 主机,这与 Dozzle 自身支持的多主机拓扑保持一致:
| 连接方式 | 适用场景 |
|---|---|
unix socket | 连接本机 Docker(默认路径/var/run/docker.sock),零额外配置 |
tcp | 通过 TCP 协议连接远程 Docker daemon,适用于跨主机监控 |
ssh | 借助 SSH 通道连接远端主机,复用已有的 SSH 认证体系 |
官方文档特别强调,dtop "适合与 Dozzle 相同的多主机配置"(well suited for the same multi-host setups Dozzle supports)。也就是说,如果你的环境中 Dozzle 已经通过 agent 或 remote host 管理了多台 Docker 主机,那么 dtop 也可以按同样的连接思路去访问这些主机,在终端里统一查看它们的状态。
关于多主机连接,可以在本仓库找到 Dozzle 侧对应的完整方案作为对照:
- Agent 模式:通过
DOZZLE_REMOTE_AGENT连接远程 agent(默认端口 7007),agent 之间通过 TLS 加密通信,是最推荐的多主机方式; - 远程主机:通过
DOZZLE_REMOTE_HOST(如tcp://167.99.1.1:2376)直接连接远程 Docker daemon,适合私有网络内配合 socket proxy 使用。
dtop 与 Dozzle 在连接层面共享同样的目标主机类型(本机 socket / 远程 TCP / SSH),因此在你的多主机方案里,终端侧与浏览器侧可以指向同一批主机,观察口径保持一致。
安装 dtop
官方文档给出了两种安装方式,按需选择即可。
方式一:Homebrew 安装
如果你使用 macOS(或已安装 Homebrew 的 Linux 环境),一行命令即可完成安装:
brew install dtop安装完成后,dtop命令直接进入 PATH,随时可在任意终端会话中启动。
方式二:Docker 运行(免安装)
如果你不想在本机安装任何东西,或者目标主机本身就跑着 Docker,可以直接用官方镜像运行:
docker run -v /var/run/docker.sock:/var/run/docker.sock -it ghcr.io/amir20/dtop:latest这条命令里有三个关键点值得注意:
- 挂载 Docker socket:
-v /var/run/docker.sock:/var/run/docker.sock把宿主机的 Docker unix socket 挂进容器,dtop 才能读取容器列表。这与 Dozzle 自身的标准启动方式完全一致——在 Getting Started 中,Dozzle 同样通过挂载/var/run/docker.sock获得 Docker 访问能力; - 交互式终端:
-it保证分配交互式 TTY,否则这类实时刷新的 TUI 应用无法正常渲染; - 镜像来源:镜像托管在 GitHub Container Registry(
ghcr.io),使用latest标签获取最新发布版本。
安全提示:与 Dozzle 一样,挂载 Docker socket 意味着获得该主机的 root 级 Docker 控制权。只在可信的私有网络或本机环境使用这种连接方式。
完整的安装说明(包括其他平台与发行渠道)由 dtop 项目在自身仓库中维护,建议以 dtop 官方仓库的 README 为准。
定位与分工:终端问询,浏览器深挖
官方文档用一句话概括了 dtop 的定位——它刻意比 Dozzle 小(deliberately smaller than Dozzle)。两者之间是一条清晰的分工线:
dtop 负责:在终端回答"现在在跑什么、有没有出问题"
dtop 覆盖的问题是 "what is running right now, and is anything on fire"(现在有哪些容器在运行,有没有哪个在"着火")。换句话说,它擅长的是状态概览:
- 实时列出运行中的容器及其状态;
- 快速发现异常容器(如持续重启、健康检查失败等),第一时间在终端里"瞄到"问题;
- 轻量、常驻、不占浏览器窗口,适合放进 tmux/screen 会话或 SSH 登录后的默认视图。
Dozzle 负责:一切需要浏览器能力的深度排查
当概览发现问题、需要进一步追根究底时,dtop 把接力棒交给 Dozzle。文档明确列举了这些"需要浏览器"的能力:
- 历史日志(log history):进入容器日志视图,回溯完整的日志流;
- 搜索(search):Dozzle 支持对日志做正则搜索与容器名的智能模糊搜索(见 README 的 Features 列表与 Filters 文档);
- SQL 查询(SQL queries):针对 JSON 日志,Dozzle 内置了基于 DuckDB/WASM 的 SQL 引擎,可以在浏览器内直接执行
SELECT ... FROM logs WHERE level = 'error'这类分析查询,数据不出浏览器; - 统计图表(stat charts):Dozzle 提供实时的内存与 CPU 使用率图表(live stats with memory and CPU usage),把容器资源消耗的变化趋势可视化。
也就是说,dtop 解决"有没有事",Dozzle 解决"到底是什么事、为什么"。终端只保留最轻的实时状态面,把需要交互、筛选、可视化的重活全部留给浏览器端的 Dozzle。这种"薄终端 + 厚 Web"的架构取舍,与 Dozzle 本身"轻量、专做实时日志查看"的产品哲学是一脉相承的(README 中明确说明 Dozzle 不存储日志文件,只做实时查看)。
多主机场景下的组合用法
结合 Dozzle 的多主机能力,可以勾勒出 dtop 在实际生产环境中的典型用法:
- 单机快速巡检:本机通过 unix socket 运行 dtop,随时查看本机容器状态;发现问题后,在浏览器打开 Dozzle(同一 socket)深挖日志;
- 多主机统一监控:当 Dozzle 通过 Agent 模式(
DOZZLE_REMOTE_AGENT)或 远程主机(DOZZLE_REMOTE_HOST)纳管多台 Docker 主机时,dtop 同样可以通过ssh/tcp连接这些主机,在终端里逐台巡检,省去反复打开浏览器页面的开销; - SSH 会话场景:在无法访问浏览器(或不想暴露 Dozzle Web 端口)的隔离网络里,SSH 登录 + dtop 是最轻量的远程监控手段。
项目状态与维护
dtop 与 Dozzle 是两个独立维护的项目:
- dtop 在独立仓库中开发,按自己的发布节奏迭代,不跟随 Dozzle 的版本号;
- 功能建议与 bug 报告应提交到 dtop 项目自身的 Issues 页面,而不是 Dozzle 仓库;
- Dozzle 仓库内的 dtop 文档(docs/guide/dtop.md)同时提供多语言版本(如 法语、中文、德语、西班牙语),但详细的安装与使用手册以 dtop 官方仓库为准。
一句话总结:如果你已经在用 Dozzle 管理容器日志,dtop 就是那个把"实时状态巡检"从浏览器搬回终端的轻量搭档——终端里盯状态,浏览器里查日志,各司其职。
【免费下载链接】dozzleRealtime log viewer for containers. Supports Docker, Swarm and K8s.项目地址: https://gitcode.com/GitHub_Trending/do/dozzle
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考