Dozzle 群晖 Container Manager 完整部署步骤

环境:DSM,Container Manager,数据盘 /volume2 端口:8080,先确认端口是否占用

一、前置检查

1. 检查端口 8080 是否被占用

两种方式任选其一

  1. SSH登录NAS执行:

    sudo netstat -tulpn | grep 8080

    有输出=端口被占用;无输出=可用。

    如果8080被占用:把compose里端口改成 8081:8080,访问地址改为 http://NASIP:8081

  2. 图形方式:Container Manager → 容器,看现有容器有无映射8080。

2. 在 File Station 创建文件夹(必须手动建好,否则挂载报错)

路径:/volume2/docker/dozzle

  • 父目录:/volume2/docker(你已有)
  • 新建文件夹:dozzle

    dozzle 目录下不需要手动新建任何子文件夹、文件,容器启动后自动在里面生成数据文件。 ✅ 目录清单: /volume2/docker/dozzle 【仅此一级目录,无子目录】

二、Container Manager → 创建项目

  1. 打开 Container Manager → 左侧【项目】→ 右上角【创建】

  2. 项目名称:dozzle(小写,方便识别)

  3. 存储库:留空

  4. 【撰写文件】选择 新建撰写文件,把下面完整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
       - /volume2/docker/dozzle:/data
     environment:
       DOZZLE_NO_ANALYTICS: true
       # 简单账号密码认证,需要就取消下面三行注释,修改账号密码
       # DOZZLE_AUTH_PROVIDER: simple
       # DOZZLE_USER: admin
       # DOZZLE_PASSWORD: "自定义密码"
       # 允许在网页启停容器,内网环境才开启,公网不要开
       # DOZZLE_ENABLE_ACTIONS: true
       # 网页shell,高危,默认关闭
       # DOZZLE_ENABLE_SHELL: false

    👉 如果8080端口占用,修改ports行:- "8081:8080"

  5. 【环境】不用修改

  6. 【网络】保持默认 bridge

  7. 【高级设置】保持默认

  8. 勾选:启动项目 → 点【下一步】→【完成】

三、启动验证

项目构建完成后,访问:http://NASIP:8080

  • 页面打开,能看到所有容器列表,代表部署成功
  • 点开任意容器,实时查看日志,支持搜索

四、重点说明

  1. 挂载说明
    • /var/run/docker.sock:/var/run/docker.sock必须挂载,Dozzzle靠这个读取Docker容器日志,权限很高,外网不能裸奔。
    • /volume2/docker/dozzle:/data:持久化保存Dozzzle配置(账号密码等),文件夹必须提前在File Station建好,不要让容器自动创建。
  2. 目录结构回顾
    volume2
    └── docker
     └── dozzle      ← 手动新建,内部无子文件夹,容器自动生成文件
  3. 升级方式 Container Manager → 项目 → dozzle →【重建】,会自动拉取最新镜像。

五、反向代理HTTPS补充(可选)

如果你后续想用群晖反向代理套域名+证书访问:

  • 源端口:8080
  • 目标IP:NAS本机IP
  • 目标端口:8080

    注意:Dozzzle不需要额外配置,反向代理后直接用域名访问。

六、常见报错排查

  1. Bind mount failed:/volume2/docker/dozzle 不存在 👉 原因:File Station没手动建文件夹,解决:去File Station新建。
  2. 页面打不开:检查防火墙、端口映射、项目是否正常运行。
  3. 看不到容器列表:docker.sock挂载缺失,yaml里不能删掉这一行。