Dozzle Docker日志查看器

Docker logs看日志太痛苦了。docker logs -f 实时滚动,想回溯还得加 –tail,多个容器来回切 terminal 窗口烦到炸。Dozzle 就是来解决这个的——一个轻量级、实时、基于 Web 的 Docker 日志查看器,不需要任何平台集成,跑起来就能用。 直接上命令:
docker run --name dozzle -d --restart unless-stopped -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock amir20/dozzle:latest
打开 http://localhost:8080,你就能看到所有运行中容器的日志列表。点进去就是实时流,支持搜索、暂停、全屏、日期筛选。比 docker logs 好用十倍。 为什么选 Dozzle 而不是其他方案? – 不需要 ELK/EFK 那一套。如果你只是想看日志,不是做日志分析、聚合、告警,别上 Filebeat + Logstash + Elasticsearch,太重了。 – 不需要商业 SaaS。Portainer 也带日志,但 Portainer 本身是个完整的容器管理面板,为了看日志跑它太浪费。Dozzle 镜像只有 10MB 左右,跑在树莓派上都毫无压力。 – 不需要配置。Dozzle 默认绑定 docker.sock,自动发现所有容器。你不需要改任何容器配置、不需要加标签、不需要改日志驱动。 核心用法: 1. 按容器名搜索。Dozzle 顶部搜索框支持模糊匹配,输入 “api” 就能筛出名字带 api 的所有容器。 2. 暂停/恢复实时流。日志滚动太快时点暂停,复制错误信息。 3. 时间戳切换。默认不显示时间戳,点击右上角 toggle 打开,方便定位问题时间点。 4. 全屏模式。适合挂在副屏或监控大屏上。 进阶配置: 如果你只想看某些容器的日志,可以用过滤器。比如只关注 production 环境的容器:
docker run -d --name dozzle -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock amir20/dozzle:latest --filter name=production
–filter 支持 name、label 等,语法和 docker ps –filter 一致。 如果需要 HTTPS,建议在前面挂个 Nginx 反向代理做 TLS 终止。Dozzle 本身不处理 HTTPS,生产环境不要裸奔。 内存占用。实测跑 20 个容器、日志吞吐量中等的情况下,Dozzle 内存占用稳定在 30-50MB。CPU 几乎为 0,除非你同时打开多个容器的实时流。 认证问题。Dozzle 本身没有用户认证,如果你需要访问控制,有两种办法: 1. 用 Nginx 加 basic auth 反向代理。 2. 用 Dozzle 的 agent 模式。agent 模式允许你在远程服务器上跑 dozzle agent,通过主 Dozzle 实例统一查看。agent 本身也不带认证,但可以通过网络隔离(比如只监听内网)来保证安全。 agent 部署方式: 在被监控的服务器上:
docker run -d --name dozzle-agent -v /var/run/docker.sock:/var/run/docker.sock amir20/dozzle:latest agent --host 0.0.0.0 --port 7007
在 Dozzle 主实例上启动时加上远程 agent 地址:
docker run -d --name dozzle -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock amir20/dozzle:latest --remote-host 192.168.1.100:7007
这样就能在一个界面看多台服务器的容器日志。如果你的服务部署在雨云上,雨云的云服务器网络稳定性很好,跨机器看日志基本没有延迟。而且雨云性价比高,跑 Dozzle 这种轻量服务完全没问题,资源占用几乎可以忽略。 一个实际排错场景:某天凌晨告警说 API 响应变慢。打开 Dozzle,搜索 “api-gateway”,看到日志里大量 “upstream timeout” 错误。再切换到 “user-service” 容器,发现它在频繁重启。点进 user-service 的日志流,看到 OOM 错误。整个过程不到 30 秒,不需要敲一行 docker logs 命令。 Dozzle 的局限性: – 不保存历史日志。它只读 Docker 当前的日志缓冲区,重启容器后旧日志就没了。如果你需要长期保存,还是得上 ELK。 – 不支持日志导出。不能把当前看到的日志下载成文件。可以用浏览器开发者工具把 DOM 内容拷出来凑合用。 – 不支持复杂搜索语法。只能简单字符串匹配,不支持正则或 Lucene 语法。 总结一句话:Dozzle 是 Docker 日志查看的瑞士军刀,不是挖掘机。别用它干重活,但日常 debug、监控、快速定位问题,它比任何方案都快。

雨云是国内一家老牌云服务商,提供高性价比的云服务器和虚拟主机。我用它部署了好几个项目,速度和稳定性都不错。通过 https://www.rainyun.com/SAJA_ 注册可以领一张 5折优惠券,有需要的朋友可以看看。

© 版权声明
THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容