2026年7月3日10:46:00
性能消耗很小

现在大多数应用都是使用docker部署,使用docker compose把所有的docker的配置文件写在一起,这样的话就有个麻烦的地方,就是查看每个应用控制台输出的日志,因为很多时候不是每个人都有服务器的权限,或者说有些人员不能去登录服务器查询,这个时候有个小控制面板就很好了。
特色
- 智能模糊搜索容器名称
- 使用正则表达式的搜索日志
- 使用SQL查询的搜索日志
- 内存占用较小
- 分屏查看多日志
- 实时统计数据,包括内存和CPU使用率
- 支持转发代理授权的多用户认证
- 群聚模式支持
- 用于监控多台Docker主机的代理模式
- 暗黑模式
- Dozzle已经用数百个容器测试过。不过,它不支持离线搜索。像Loggly、Papertrail或Kibana这样的产品更适合实现完整的搜索功能。
官方文档:https://github.com/amir20/dozzle
使用golang开发,内存消耗小,非常适合中小项目需要docker日志,几乎不需要改造其他的应用,就可以直接读取容器里的日志,非常方便debug

部署
docker-compose.yaml
dozzle:
image: amir20/dozzle:latest
container_name: dozzle
ports:
- "8080:8080"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./users.yml:/data/users.yml:ro
- dozzle-data:/data
environment:
# 开启简易账号密码认证(必须加)
DOZZLE_AUTH_PROVIDER: simple
# 初始化最近8000行日志,读取越多,消耗的内存越多
DOZZLE_TAILSIZE: 8000
DOZZLE_NO_ANALYTICS: "true"
生成users.yml
docker run --rm amir20/dozzle:latest generate admin --password "admin@local" --email admin@local --name Admin > users.yml
修改docker配置文件
cat daemon.json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "100m",
"max-file": "10",
"compress": "true"
}
}
保存最近10个文件,每个日志文件100m
注意:
1,dozzle不保存日志,docker没有配置日志,就直接读取的控制台输出
2,比较小应用和读取最近的日志,如果你需要保存在远程提供离线存储和查询,Loggly、Papertrail或Kibana
3,注意配置账号和密码,防止别人登录,如果想减少麻烦,直接把"max-size": "1000m"改大,DOZZLE_TAILSIZE: 50000,这样中小应用基本一周的日志差不多了,如果没打很多info 或者 warning的话基本足够了
4,dozzle的作者的 https://github.com/amir20/dtop 也很有趣