dozzle README

The project's README from github.com/amir20/dozzle. As one markdown file: README.md.

Dozzle Logo

Dozzle - dozzle.dev

Dozzle is a lightweight, web-based application for monitoring Docker logs in real time. It doesn't store any log files—it's designed purely for live log viewing.

https://github.com/user-attachments/assets/66a7b4b2-d6c9-4fca-ab04-aef6cd7c0c31

Docker Image Size (latest by date) Docker Pulls Docker Version Test

[!NOTE] If you like Dozzle, check out dtop, a top-like application for monitoring Docker containers. It integrates with Dozzle to link directly to container logs.

Features

Dozzle has been tested with hundreds of containers. However, it doesn't support offline searching. Products like Loggly, Papertrail, or Kibana are better suited for full search capabilities.

Getting Started

Dozzle is a small container (7 MB compressed). Pull the latest release with:

$ docker pull amir20/dozzle:latest

Running Dozzle

The simplest way to use Dozzle is to run the Docker container. Mount the Docker Unix socket with --volume to /var/run/docker.sock:

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

Dozzle will be available at http://localhost:8080/.

Here is a Docker Compose example:

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:

For advanced options like authentication, remote hosts, or common questions, see the documentation at dozzle.dev.

Image Tags

Images are published to both Docker Hub and ghcr.io with identical tags.

Tag Description
latest Most recent release. Recommended for most users.
v10.6.15 An exact release. Pin this for reproducible deployments.
v10.6 Latest patch within that minor version. Picks up bug fixes only.
v10 Latest release within that major version. Picks up new features too.
alpine Same as latest, but on an Alpine base instead of scratch.
v10.6.15-alpine, v10.6-alpine, v10-alpine Alpine variants of the version tags above.
master Built from the master branch on every push. Unreleased and unstable.
pr-1234, pr-1234-alpine Built from pull request #1234, for testing a fix before it ships.

The default images are built FROM scratch and contain only the Dozzle binary, which is why they are around 7 MB compressed. That also means there is no shell inside them. Use the alpine variants only if something in your setup needs one, most commonly platforms that bind-mount a #!/bin/sh wrapper over the container entrypoint such as Unraid's per-container Tailscale toggle. See the FAQ for details.

Avoid latest and master in production. latest moves on every release and master is unreleased code.

Swarm Mode

Dozzle works with Docker Swarm. You can run Dozzle as a 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

See the Swarm Mode documentation for more details.

Agent Mode

Dozzle can monitor multiple Docker hosts. Run Dozzle in agent mode with:

$ docker run -v /var/run/docker.sock:/var/run/docker.sock -p 7007:7007 amir20/dozzle:latest agent

See the Agent Mode documentation for more details.

Technical Details

Dozzle uses automatic API negotiation, which works with most Docker configurations. Dozzle also works with Colima and Podman.

Dozzle requires Docker Engine 19.03 or newer (API version 1.40+). Older daemons are not supported by the underlying Docker SDK.

Installation on Podman

By default, Podman doesn't have a background process, but you can enable the remote socket for Dozzle to work.

First, verify if your Podman installation has the remote socket enabled:

podman info

If you see output like this under the remote socket key, it's already enabled:

  remoteSocket:
    exists: true
    path: /run/user/1000/podman/podman.sock

If it's not enabled, follow this tutorial to enable it.

Once the Podman remote socket is enabled, you can run Dozzle:

podman run --volume=/run/user/1000/podman/podman.sock:/var/run/docker.sock -d -p 8080:8080 docker.io/amir20/dozzle:latest

Nothing else is needed. Dozzle works out a stable host id for Podman on its own, since Podman is daemonless and has no engine identity to report.

[!NOTE] Older versions of this page told you to create a /var/lib/docker/engine-id file to prevent host not found errors. That never worked. Podman's Docker-compatible /info endpoint does not read any file, it returns a new random UUID on every call, so Dozzle now derives the id instead. You can delete the file.

For more details, see Podman Info or the FAQ.

Security

Dozzle supports file-based authentication and forward proxy authentication with tools like Authelia. See the documentation at https://dozzle.dev/guide/authentication.

Analytics

Dozzle collects anonymous user configurations using Google Analytics. Why? Dozzle is an open source project with no funding, so there's no time for formal user studies. Analytics help prioritize features and fixes based on how people use Dozzle. This data is completely public and can be viewed live on the Data Studio dashboard.

To disable analytics, use the --no-analytics flag.

Environment Variables and Configuration

Dozzle follows the 12-factor model. Configuration can be done via CLI flags or environment variables. See the documentation at dozzle.dev/guide/supported-env-vars for more details.

Support

There are many ways to support Dozzle:

Buy Me A Coffee

License

MIT

Building

Want to contribute? Great! Dozzle has two parts: a Go backend that talks to Docker, and a Vue frontend that runs in the browser. You don't need to know both — pick the side that matches what you want to change. For documentation fixes, no setup is needed at all; just edit the file on GitHub.

1. Install the prerequisites

You'll need Go (1.25+), Node.js (with pnpm), and protoc.

On macOS, you can install everything in one go:

brew install go node pnpm protobuf

On Linux (Debian/Ubuntu):

sudo apt install golang nodejs protobuf-compiler
npm install -g pnpm

On Windows, we recommend using WSL2 and following the Linux instructions.

2. Clone and set up

git clone https://github.com/amir20/dozzle.git
cd dozzle
pnpm install                # installs frontend dependencies
go install tool             # installs Go build tools listed in go.mod (air, protoc-gen-go, etc.)
make generate               # generates TLS certificates and protobuf code (only needed once)

3. Start the dev server

make dev

Open http://localhost:3100 — you should see the Dozzle UI connected to your local Docker. Both the frontend and backend reload automatically when you save a file.

Making your first change

Try editing assets/pages/index.vue and saving — the browser updates instantly. For backend changes, edit any .go file and the server will restart on its own.

Troubleshooting

dozzle (amir20/dozzle)

Searching Database…

14.7K ·GitHub
这是什么?Dozzle 是一个轻量级的网页应用,用于实时监控 Docker 容器日志,支持 Docker、Swarm 和 Kubernetes。
它会保存日志,还是只实时显示?它完全不保存任何日志文件,专门用于实时查看日志,因此不是完整的日志聚合与搜索方案。
我要怎么让它运行起来?以容器方式运行,并挂载 Docker 套接字:docker run --name dozzle -d --volume=/var/run/docker.sock:/var/run/docker.sock -v dozzledata:/data -p 8080:8080 amir20/dozzle:latest。README 中还提供了 Docker Compose 示例。
我的 Docker 环境需要什么特别的配置吗?需要 Docker Engine 19.03+(API 1.40+);Dozzle 也可以与 Colima 和 Podman 配合使用(Podman 需要启用其远程套接字)。
我能用它搜索旧的或已归档的日志吗?不能,它不支持离线搜索;如需对历史日志进行全面搜索,README 推荐使用 Loggly、Papertrail 或 Kibana 等工具。
它也支持 Swarm 和 Kubernetes,还是只能用于单个 Docker 主机?支持。它提供 Swarm 模式(以全局服务方式运行)和用于监控多个 Docker 主机的 Agent 模式,此外还支持单主机 Docker 和 K8s。
Dozzle 提供哪些搜索功能?它具备针对容器名称的智能模糊搜索,还支持使用正则表达式或 SQL 查询来搜索日志。
Dozzle 镜像有多大?默认镜像基于 FROM scratch 构建,压缩后约 7 MB,内部没有 shell;如果需要 shell,可以使用 Alpine 变体。
我能为 Dozzle 设置访问认证吗?可以,它支持基于文件的多用户认证,以及与 Authelia 等工具配合使用的转发代理认证。
What are similar projects?faas, telegraf, signoz, k9s, litmus, portainer, hivepaas, beszel
Creator
amir20
Size
171.3 MB
Stars
14.7K
Age
7y
Commits · 90 Days