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

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

更新

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

bash
docker compose pull
docker compose up -d
docker compose logs --tail 100 dozzle

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

安全注意事项

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

参考

基于 MIT 许可发布