Dozzle - dozzle.dev
Dozzle 是一个轻量级应用程序,具有基于网页的界面,用于监控 Docker 日志。它不存储任何日志文件,仅用于实时监控容器日志。
https://github.com/user-attachments/assets/66a7b4b2-d6c9-4fca-ab04-aef6cd7c0c31
特性
- 智能模糊搜索容器名称 🤖
- 使用正则表达式搜索日志 🔦
- 内存占用小 🏎
- 分屏查看多个日志
- 实时显示内存和 CPU 使用情况
- 多用户认证,支持代理转发授权 🚨
- 支持 Swarm 模式 🐳
- 代理模式,可监控多个 Docker 主机 🕵️♂️
- 暗黑模式 🌙
Dozzle 已经在数百个容器上进行了测试。然而,它不支持离线搜索。像 Loggly、Papertrail 或 Kibana 这样的产品更适合全面的搜索功能。
入门
Dozzle 是一个小型容器(压缩后 7 MB)。使用以下命令拉取最新版本:
$ docker pull amir20/dozzle:latest
运行 Dozzle
使用 Dozzle 最简单的方法是运行 Docker 容器。同时,使用 --volume
将 Docker Unix 套接字挂载到 /var/run/docker.sock
:
$ docker run --name dozzle -d --volume=/var/run/docker.sock:/var/run/docker.sock -p 8080:8080 amir20/dozzle:latest
Dozzle 将在 http://localhost:8080/ 上可用。
以下是 Docker Compose 文件:
services:
dozzle:
container_name: dozzle
image: amir20/dozzle:latest
volumes:
- /var/run/docker.sock:/var/run/docker.sock
ports:
- 8888:8080
有关高级选项,如认证、远程主机或常见问题,请参阅 dozzle.dev 上的文档。
Swarm 模式
Dozzle 可以与 Docker Swarm 模式一起使用。您可以使用以下命令将 Dozzle 作为全局服务运行:
$ 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
更多详情请参阅 Swarm 模式 文档。
代理模式
Dozzle 可用于监控多个 Docker 主机。您可以使用以下命令在代理模式下运行 Dozzle:
$ docker run -v /var/run/docker.sock:/var/run/docker.sock -p 7007:7007 amir20/dozzle:latest agent
更多详情请参阅代理模式文档。
技术细节
Dozzle 使用自动 API 协商,可适用于大多数 Docker 配置。Dozzle 还可以与 Colima 和 Podman 一起使用。
在 Podman 上安装
默认情况下,Podman 没有后台进程,但您可以为 Dozzle 启用它。
首先验证您的 Podman 安装是否已启用远程套接字:
podman info
当您在 remote socket 键下得到如下输出时,表示已启用:
remoteSocket:
exists: true
path: /run/user/1000/podman/podman.sock
如果未启用,请按照此教程启用它。
一旦有了 Podman 远程套接字,您就可以在 Podman 上运行 Dozzle。
podman run --volume=/run/user/1000/podman/podman.sock:/var/run/docker.sock -d -p 8888:8080 amir20/dozzle:latest
安全性
Dozzle 支持基于文件的认证和转发代理(如 Authelia)。这些内容记录在 https://dozzle.dev/guide/authentication。
收集的分析数据
Dozzle 使用 Google Analytics 收集匿名用户配置。为什么?Dozzle 是一个没有资金支持的开源项目。因此,没有时间进行 Dozzle 的用户研究。收集分析数据是为了根据人们使用 Dozzle 的方式来优先考虑功能和修复。这些数据完全公开,可以使用 Data Studio 仪表板 实时查看。
如果您不想被跟踪,请参阅下面的 --no-analytics
标志。
环境变量和配置
Dozzle 遵循 12-factor 模型。配置可以使用 CLI 标志或环境变量。下表列出了所有支持的选项及其相应的环境变量。
标志 | 环境变量 | 默认值 |
---|---|---|
--addr | DOZZLE_ADDR | :8080 |
--base | DOZZLE_BASE | / |
--hostname | DOZZLE_HOSTNAME | "" |
--level | DOZZLE_LEVEL | info |
--auth-provider | DOZZLE_AUTH_PROVIDER | none |
--auth-header-user | DOZZLE_AUTH_HEADER_USER | Remote-User |
--auth-header-email | DOZZLE_AUTH_HEADER_EMAIL | Remote-Email |
--auth-header-name | DOZZLE_AUTH_HEADER_NAME | Remote-Name |
--enable-actions | DOZZLE_ENABLE_ACTIONS | false |
--filter | DOZZLE_FILTER | "" |
--no-analytics | DOZZLE_NO_ANALYTICS | false |
--mode | DOZZLE_MODE | server |
--remote-host | DOZZLE_REMOTE_HOST | |
--remote-agent | DOZZLE_REMOTE_AGENT |
支持
您可以通过多种方式支持 Dozzle:
- 使用它!写写它!为它加星!如果您喜欢 Dozzle,给我发个消息,告诉我您喜欢什么。
- 写博客介绍 Dozzle 以传播它。如果您擅长写作,请发送 PR 来改进 dozzle.dev 上的文档。
- 在 https://www.buymeacoffee.com/amirraminfar 赞助我的工作
许可证
构建
要在本地构建和测试: