Docker容器实时日志查看器Dozzle

什么是 Dozzle?

Dozzle 是一个小型轻量级应用程序,具有基于 Web 的界面来监控 Docker 日志。Dozzle不存储任何日志文件,仅用于实时监控您的容器日志。

先看个官方的动图

老苏已转成了视频,源文件地址:https://github.com/amir20/dozzle/raw/master/.github/demo.gif?raw=true

软件特点

  • 容器名称智能模糊搜索🤖
  • 使用正则表达式搜索日志🔦
  • 内存占用小🏎
  • 用于查看多个日志的分屏
  • 轻松下载日志
  • 内存和 CPU 使用情况的实时统计信息
  • 使用用户名和密码进行身份验证🚨

命令行安装

与容器相关的应用,都需要绑定挂载 /var/run/docker.sock ,包括我们之前安装的 portainerwatchtowerGlancesNetdatalazydocker 等。

什么是 /var/run/docker.sock ?

/var/run/docker.sockDocker API 的主要入口,简单地说,它是 Docker 守护进程(Docker daemon)默认监听的 Unix 域套接字(Unix domain socket),容器中的进程可以通过它与 Docker 守护进程进行通信。

title

图片来自:https://betterprogramming.pub/about-var-run-docker-sock-3bfd276e12fd

但是群晖的 Docker 管理器并不支持挂载 /var/run/docker.sock 文件,所以这次我们需用命令行来安装

docker cli 安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
# 运行容器
docker run -d \
--restart unless-stopped \
--name dozzle \
-p 8183:8080 \
-v /var/run/docker.sock:/var/run/docker.sock \
amir20/dozzle:latest

docker-compose 安装

将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
version: '3'

services:
dozzle:
image: amir20/dozzle
container_name: dozzle
restart: unless-stopped
ports:
- 8183:8080
volumes:
- /var/run/docker.sock:/var/run/docker.sock

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 dozzle 目录
mkdir -p /volume2/docker/dozzle

# 进入 dozzle 目录
cd /volume2/docker/dozzle

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

更多的设置可以参考官方的说明:https://github.com/amir20/dozzle#environment-variables-and-configuration

运行

在浏览器中输入 http://群晖IP:8183 就能看到主界面

左侧可以选择查看的容器

默认列出的都是在运行的容器,可以在系统中设置把停止的容器也显示出来

停止的容器是是灰色的

也同样可以获取到日志信息

日志支持下载

Dozzle 定位很清晰,功能不多,但简单好用,是款不错的小工具。

参考文档

amir20/dozzle: Realtime log viewer for docker containers.
地址:https://github.com/amir20/dozzle

Dozzle - Log viewer for Docker
地址:https://dozzle.dev/