Dozzle:1.3万星的Docker日志实时监控工具

Dozzle:1.3万星的Docker日志实时监控工具

Dozzle 在 GitHub 上收获了 1.3 万 Star,是一个轻量级的 Docker 日志实时查看工具。它不存储任何日志文件,只做实时日志流的展示,这个定位让它保持了极小的体积和资源占用。

正文顶部截图

日常开发中查看容器日志,通常就是在终端里敲 docker logs 命令。这种方式在容器数量少的时候够用,一旦服务多了,在不同容器之间来回切换就会很麻烦。Dozzle 解决的就是这个痛点:在浏览器里统一查看所有容器的日志,有搜索、有分屏、有实时统计。

Dozzle 镜像压缩后只有 7 MB,内存占用低,适合在开发环境或小型 VPS 上长期运行。作者提到测试过数百个容器的场景,运行稳定。不过 Dozzle 不支持离线搜索,如果需要全文检索能力,Loggly、Papertrail 或 Kibana 这类产品更适合。

主要功能覆盖日常日志查看的多种需求:

  • 智能模糊搜索容器名称,快速定位目标容器
  • 支持正则表达式搜索日志内容
  • 支持 SQL 语法查询日志,对结构化分析场景提供了更多灵活性
  • 分屏模式,同时查看多个容器日志,不用来回切换
  • 实时显示 CPU 和内存用量统计
  • 多用户认证,支持前置代理授权
  • 深色模式

README区域截图

快速上手

拉取并运行容器,唯一的前提是挂载 Docker Unix socket:

docker pull amir20/dozzle:latest
docker run --name dozzle -d --volume=/var/run/docker.sock:/var/run/docker.sock -v dozzle_data:/data -p 8080:8080 amir20/dozzle:latest

启动后访问 http://localhost:8080 就能看到界面。Docker Compose 部署同样简单,volumes 配置和端口映射加起来不到十行。如果需要持久化配置(比如用户账号),挂载 /data 目录即可。

Swarm 和 Agent 模式

Dozzle 支持 Docker Swarm 集群。Swarm 模式下作为 global service 部署,覆盖集群全部节点:

docker service create --name dozzle --env DOZZLE_MODE=swarm --mode global --mount type=bind,source=/var/run/docker.sock,target=/var/run/docker.sock -p 8080:8080 amir20/dozzle:latest

Agent 模式面向多主机场景,每台机器以 agent 模式运行 Dozzle(端口 7007),由中心实例统一汇总各主机的日志流,适合管理分散在多台物理机或虚拟机上的容器。

Podman 兼容

Dozzle 兼容 Podman 和 Colima。Podman 默认没有守护进程,需要先启用 remote socket,之后运行命令与 Docker 基本一致。额外的一步是:Podman 不生成 engine-id,需要在 /var/lib/docker 目录下创建包含 UUID 的 engine-id 文件,否则会报 host not found 错误。

技术栈与安全

Dozzle 的后端用 Go 编写,通过 Docker API 与守护进程通信,前端用 Vue 构建,要求 Docker Engine 19.03 及以上版本。安全方面支持基于文件的用户认证和前置代理认证,可配合 Authelia 等工具接入现有认证体系。项目通过 Google Analytics 收集匿名配置数据辅助功能决策,数据在 Data Studio 公开,可通过 --no-analytics 参数关闭。

posted @ 2026-06-03 12:59  techarch  阅读(15)  评论(0)    收藏  举报