主题
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.ymlnone 角色只允许查看日志,不授予容器操作、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_ACTIONS或DOZZLE_ENABLE_SHELL。 - 对公网提供服务时,应保留认证,并通过反向代理启用 HTTPS。不要将
data/users.yml提交到公开仓库。 - 监控多台 Docker 主机时,优先使用 Dozzle Agent,不要直接向网络暴露未受保护的 Docker API。
