Dozzle · 轻量 Web 实时 Docker 日志查看器 · 中文部署与使用全指南
项目仓库: https://github.com/amir20/dozzle
开源协议:MIT · 后端:Go(1.25+) · 前端:Vue + Bun ·
容器镜像:amir20/dozzle:latest(压缩后约 7 MB,FROM
scratch) · 默认端口:8080 · Agent 模式端口:7007 · 要求:Docker Engine
19.03+(API 1.40+)
说明:Dozzle 官方 README 仅提供 SVG logo 与 GIF 演示动图,无静态 PNG 界面图,按规程本篇不设封面、正文不强配图。
1 项目简介
Dozzle(仓库名 amir20/dozzle)是一个轻量、基于
Web 的 Docker
实时日志查看器。它本身不存储任何日志文件,纯做实时(live)日志流查看——挂载
Docker socket 后,在浏览器里 fuzzy 搜索容器、按正则 / SQL
查询日志、分屏看多个容器、实时看 CPU 与内存。
1.1 核心信息一览
| 项目项 | 内容 |
|---|---|
| 项目名称 | Dozzle |
| 仓库地址 | github.com/amir20/dozzle |
| 项目定位 | Web 端 Docker 实时日志查看器 |
| 开源协议 | MIT |
| 后端 / 前端 | Go / Vue |
| 镜像 | amir20/dozzle:latest(Docker Hub 与 ghcr.io
同标签) |
| 默认 Web 端口 | 8080 |
| Agent 模式端口 | 7007 |
| 依赖 | Docker Engine 19.03+(API 1.40+),兼容 Colima、Podman |
1.2 适用场景
- 不想 SSH 进服务器敲
docker logs -f,想要浏览器里实时看多容器日志。 - 需要 fuzzy 搜容器、正则 / SQL 过滤日志、分屏对比。
- 想监控多台 Docker 主机(Agent 模式)或 Swarm 集群。
1.3 能力边界(官方口径)
- 不支持离线搜索:官方明确它只做 live 查看;要完整历史检索请用 Loggly / Papertrail / Kibana 这类产品。
- 默认镜像
FROM scratch,容器内没有 shell;需要 shell 用alpine变体。 - 生产环境避免用
latest/main标签,建议固定版本标签。
2 功能特性
- 容器名智能 fuzzy 搜索;日志正则搜索、SQL 查询。
- 分屏查看多个日志;实时 CPU / 内存统计。
- 多用户鉴权(文件鉴权 + Authelia 等前向代理鉴权)。
- Swarm 模式、Agent 模式(监控多 Docker 主机)。
- 暗色模式;内存占用小。
3 官方界面预览
官方 README 仅提供 GIF
演示动图(.github/demo.gif),无静态截图,按规程不配正文图。可访问
dozzle.dev 在线查看。
4 官方跳转链接汇总
| 类别 | 链接 | 说明 |
|---|---|---|
| 仓库主页 | https://github.com/amir20/dozzle | 源码与 README |
| 官方文档 | https://dozzle.dev/guide/getting-started | 指南、鉴权、Agent、Swarm |
| Docker Hub | hub.docker.com/r/amir20/dozzle | 镜像 |
| ghcr.io | ghcr.io/amir20/dozzle | 同标签镜像 |
| 姊妹工具 | dtop | top 风格的 Docker 容器监视器 |
5 前置要求
- Docker Engine 19.03+(API 1.40+);兼容 Colima、Podman。
- 挂载
/var/run/docker.sock才能读本机容器与日志。
6 方式一:Docker 一键运行(官方推荐)
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/。compose 等价:
services:
dozzle:
container_name: dozzle
image: amir20/dozzle:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- dozzle_data:/data
ports:
- 8080:8080
volumes:
dozzle_data:6.1 镜像标签
| 标签 | 说明 |
|---|---|
latest |
最新发布(生产不建议浮动) |
v10.6.15 |
精确版本,生产推荐固定 |
v10.6 |
该 minor 最新补丁 |
v10 |
该 major 最新(含新特性) |
alpine |
Alpine 底座变体(含 shell) |
main |
main 分支构建,未发布不稳定 |
6.2 Swarm 模式
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:latest6.3 Agent 模式(监控多台 Docker 主机)
# 在被监控主机上跑 agent
docker run -v /var/run/docker.sock:/var/run/docker.sock \
-p 7007:7007 amir20/dozzle:latest agent6.4 Podman 环境
# 先确认 remote socket 已启用(podman info 看 remoteSocket)
podman run --volume=/run/user/1000/podman/podman.sock:/var/run/docker.sock \
-d -p 8080:8080 docker.io/amir20/dozzle:latest7 方式二:本地开发运行
# 依赖:Go 1.25+、Node.js、Bun、protoc
git clone https://github.com/amir20/dozzle.git
cd dozzle
bun install
go install tool
make generate
make dev # 开发服务器 http://localhost:31008 配置项说明
- Dozzle 遵循 12-factor:配置通过 CLI flag 或环境变量(完整列表见
dozzle.dev/guide/supported-env-vars)。 - 鉴权:文件鉴权与 Authelia 等前向代理鉴权(见
dozzle.dev/guide/authentication)。 - 分析:默认采集匿名使用配置(Google
Analytics),
--no-analytics关闭。
9 常用运维命令
docker pull amir20/dozzle:latest # 更新
docker logs -f dozzle # 看 Dozzle 自身日志
docker restart dozzle10 常见故障排查
- 页面打不开:确认 8080 映射与防火墙。
- 看不到容器:确认挂载了
/var/run/docker.sock且有权限。 - Podman 报 host not found:确保 remote socket
启用;官方说明旧文档让建
/var/lib/docker/engine-id是无效的,已废弃,可删。 - 容器里没 shell:默认 scratch 镜像无 shell,换
alpine变体。 - 需要历史全文检索:Dozzle 只做实时流,离线检索请上 ELK / Loki 类方案。
11 风险与合规说明
- MIT 许可;Dozzle 挂载了 Docker socket,等同于拥有本机 Docker 控制权,务必放在鉴权反向代理后,不要把 8080 裸露公网。
- 默认开启匿名分析,介意可
--no-analytics。 - 本文命令、端口、镜像标签来自官方 README,随版本可能调整,以官方文档为准。