Loading...

文章背景图

Dozzle:轻量 Web 实时 Docker 日志查看器|部署与使用全指南

2026-11-02
0
- 字
- 分钟
|

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:latest

6.3 Agent 模式(监控多台 Docker 主机)

# 在被监控主机上跑 agent
docker run -v /var/run/docker.sock:/var/run/docker.sock \
  -p 7007:7007 amir20/dozzle:latest agent

6.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:latest

7 方式二:本地开发运行

# 依赖: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:3100

8 配置项说明

  • 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 dozzle

10 常见故障排查

  • 页面打不开:确认 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,随版本可能调整,以官方文档为准。
评论交流

文章目录