amir20/dozzle

GitHub: amir20/dozzle

一款轻量级的 Web 端容器日志实时查看器,专注于即时调试与监控,无需搭建复杂的日志收集系统即可在浏览器中直接观测容器输出。

Stars: 12283 | Forks: 528

Dozzle Logo

# Dozzle - [dozzle.dev](https://dozzle.dev/) Dozzle 是一个轻量级的基于 Web 的实时监控 Docker 日志的应用程序。它不存储任何日志文件——其设计纯粹用于实时查看日志。 https://github.com/user-attachments/assets/66a7b4b2-d6c9-4fca-ab04-aef6cd7c0c31 [![Docker Image Size (latest by date)](https://img.shields.io/docker/image-size/amir20/dozzle)](https://hub.docker.com/r/amir20/dozzle/) [![Docker Pulls](https://img.shields.io/docker/pulls/amir20/dozzle.svg)](https://hub.docker.com/r/amir20/dozzle/) [![Docker Version](https://img.shields.io/docker/v/amir20/dozzle?sort=semver)](https://hub.docker.com/r/amir20/dozzle/) ![Test](https://static.pigsec.cn/wp-content/uploads/repos/2026/04/672e9eaf14162417.svg) ## 功能 - 针对容器名称的智能模糊搜索 - 使用正则表达式搜索日志 - 使用 [SQL 查询](https://dozzle.dev/guide/sql-engine) 搜索日志 - 内存占用小 - 分屏查看多个日志 - 包含内存和 CPU 使用情况的实时统计 - 支持 forward proxy 授权的多用户[身份验证](https://dozzle.dev/guide/authentication) - 支持 [Swarm 模式](https://dozzle.dev/guide/swarm-mode) - 用于监控多个 Docker 主机的 [Agent 模式](https://dozzle.dev/guide/agent) - 深色模式 Dozzle 已经过数百个容器的测试。但是,它不支持离线搜索。[Loggly](https://www.loggly.com)、[Papertrail](https://papertrailapp.com) 或 [Kibana](https://www.elastic.co/products/kibana) 等产品更适合实现完整的搜索功能。 ## 入门指南 Dozzle 是一个小型容器(压缩后仅 7 MB)。使用以下命令拉取最新版本: ``` $ docker pull amir20/dozzle:latest ``` ### 运行 Dozzle 使用 Dozzle 最简单的方法是运行 Docker 容器。使用 `--volume` 将 Docker Unix socket 挂载到 `/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/](http://localhost:8080/) 上可用。 以下是一个 Docker Compose 示例: ``` services: dozzle: container_name: dozzle image: amir20/dozzle:latest volumes: - /var/run/docker.sock:/var/run/docker.sock ports: - 8080:8080 ``` 有关[身份验证](https://dozzle.dev/guide/authentication)、[远程主机](https://dozzle.dev/guide/remote-hosts)或常见[问题](https://dozzle.dev/guide/faq)等高级选项,请参阅 [dozzle.dev](https://dozzle.dev/guide/getting-started) 上的文档。 ## 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 模式](https://dozzle.dev/guide/swarm-mode) 文档。 ## Agent 模式 Dozzle 可以监控多个 Docker 主机。使用以下命令以 Agent 模式运行 Dozzle: ``` $ docker run -v /var/run/docker.sock:/var/run/docker.sock -p 7007:7007 amir20/dozzle:latest agent ``` 有关更多详细信息,请参阅 [Agent 模式](https://dozzle.dev/guide/agent) 文档。 ## 技术细节 Dozzle 使用自动 API 协商,适用于大多数 Docker 配置。Dozzle 也支持 [Colima](https://github.com/abiosoft/colima) 和 [Podman](https://podman.io/)。 ### 在 Podman 上安装 默认情况下,Podman 没有后台进程,但你可以启用 remote socket 以使 Dozzle 正常工作。 首先,检查你的 Podman 安装是否启用了 remote socket: ``` podman info ``` 如果你在 remote socket 键下看到类似这样的输出,说明它已经启用: ``` remoteSocket: exists: true path: /run/user/1000/podman/podman.sock ``` 如果未启用,请按照[此教程](https://github.com/containers/podman/blob/main/docs/tutorials/socket_activation.md)进行启用。 启用 Podman remote socket 后,你可以运行 Dozzle: ``` podman run --volume=/run/user/1000/podman/podman.sock:/var/run/docker.sock -d -p 8080:8080 docker.io/amir20/dozzle:latest ``` 此外,你需要创建一个伪造的 engine-id 以防止 `host not found` 错误。由于其无守护进程(daemonless)架构,Podman 不会像 Docker 那样生成 engine-id。 在 `/var/lib/docker` 下创建一个名为 `engine-id` 的文件。在使用 Podman 的系统上,你还需要创建该文件夹路径。在文件中放入一个 UUID,例如使用 `uuidgen > engine-id`。该文件应包含类似这样的标识符:`b9f1d7fc-b459-4b6e-9f7a-e3d1cd2e14a9`。 有关更多详细信息,请参阅 [Podman 信息](docs/guide/podman.md) 或 [常见问题解答](docs/guide/faq.md#i-am-seeing-host-not-found-error-in-the-logs-how-do-i-fix-it)。 ## 安全 Dozzle 支持基于文件的身份验证和使用 [Authelia](https://www.authelia.com/) 等工具的 forward proxy 身份验证。请参阅 https://dozzle.dev/guide/authentication 上的文档。 ## 分析 Dozzle 使用 Google Analytics 收集匿名的用户配置。为什么?Dozzle 是一个没有资金支持的开源项目,因此没有时间进行正式的用户研究。分析有助于根据人们使用 Dozzle 的方式来确定功能和修复的优先级。这些数据完全是公开的,可以在 [Data Studio 仪表板](https://datastudio.google.com/s/naeIu0MiWsY)上实时查看。 要禁用分析,请使用 `--no-analytics` 标志。 ## 环境变量与配置 Dozzle 遵循 [12-factor](https://12factor.net/) 模型。可以通过 CLI 标志或环境变量进行配置。有关更多详细信息,请参阅 [dozzle.dev/guide/supported-env-vars](https://dozzle.dev/guide/supported-env-vars) 上的文档。 ## 支持 有多种方式可以支持 Dozzle: - 使用它!写下你的体验!给它点 Star!如果你喜欢 Dozzle,请给我留言告诉我你喜欢它什么。 - 写博客介绍 Dozzle 以扩大影响。如果你擅长写作,可以提交 PR 来改进 [dozzle.dev](https://dozzle.dev/) 上的文档。 - 在 https://www.buymeacoffee.com/amirraminfar 赞助我的工作 ## 许可证 [MIT](LICENSE) ## 构建 要在本地构建和测试: 1. 安装 [Node.js](https://nodejs.org/en/download/) 和 [pnpm](https://pnpm.io/installation)。 2. 安装 [Go](https://go.dev/doc/install)。 3. 安装 [protoc](https://grpc.io/docs/protoc-installation/)。 4. 使用 `go install tool` 安装 Go 工具。 5. 使用 `pnpm install` 安装 Node 模块。 6. 运行 `make dev` 以启动带有热重载的开发服务器。
标签:CPU监控, Docker, Docker日志, EVTX分析, LangChain, Swarm, 内存监控, 多宿主监控, 安全防御评估, 实时日志, 容器监控, 容器管理, 开源, 日志审计, 日志查看器, 模糊搜索, 正则搜索, 请求拦截, 轻量级, 运维工具