Skip to content

Dozzle ​

介绍 ​

Dozzle 是一个轻量级的实时容器日志查看器,支持搜索、过滤和同时查看多个容器的日志。Dozzle 默认监听 8080 端口,需要 Docker Engine 19.03 或更高版本。

Docker Compose ​

创建部署目录:

bash
# 准备部署目录
mkdir -p ~/apps/dozzle/data  # 创建部署目录
cd ~/apps/dozzle             # 进入部署目录

生成管理员配置。命令会交互式提示输入密码,密码不会写入 Shell 历史:

bash
# 账户初始化
# 交互式生成管理员配置
docker run --rm -it amir20/dozzle:latest generate admin --name Admin --user-roles none > ./data/users.yml

none 角色只允许查看日志,不授予容器操作、Shell 或日志下载权限。

创建 compose.yml:

yaml
services:
  dozzle:
    image: amir20/dozzle:latest
    container_name: dozzle
    restart: unless-stopped
    ports:
      - '8080:8080'
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./data:/data
    environment:
      DOZZLE_AUTH_PROVIDER: simple

启动服务:

bash
# 启动服务
docker compose up -d  # 后台创建并启动服务

# 状态与日志
docker compose logs --tail 100 dozzle  # 查看最近 100 行日志

访问 http://<服务器地址>:8080,使用刚创建的管理员账户登录。

更新 ​

./data 保存用户配置、通知规则和界面设置,更新容器时应保留该目录。

bash
# 更新服务
docker compose pull   # 拉取配置标签的最新镜像
docker compose up -d  # 后台创建并启动服务

# 状态与日志
docker compose logs --tail 100 dozzle  # 查看最近 100 行日志

生产环境建议将 latest 替换为经过验证的固定版本标签,以便控制升级和回滚。

安全注意事项 ​

  • Docker Socket 通常等同于宿主机 root 权限。挂载项添加 :ro 只能限制 Socket 文件本身,不能限制通过 Socket 发出的 Docker API 请求;需要限制 API 时应使用 Docker Socket Proxy。
  • 容器操作和 Shell 功能默认关闭。除非确有需要,否则不要启用 DOZZLE_ENABLE_ACTIONS 或 DOZZLE_ENABLE_SHELL。
  • 对公网提供服务时,应保留认证,并通过反向代理启用 HTTPS。不要将 data/users.yml 提交到公开仓库。
  • 监控多台 Docker 主机时,优先使用 Dozzle Agent,不要直接向网络暴露未受保护的 Docker API。

参考 ​

基于 MIT 许可发布