群晖 DS920plus 部署 MT Photos:docker run 实测(含权限踩坑)

📅 2026/7/11 14:46:23
群晖 DS920plus 部署 MT Photos:docker run 实测(含权限踩坑)
本文基于 mtphotos/mt-photos:latest 镜像群晖DS920plus实测访问端口8063手机相册、Synology Photos、硬盘散落文件夹……照片越攒越乱翻一张要翻半天MT Photos是面向 NAS 用户的照片管理系统——支持导入已有照片/视频、App 备份手机相册、人脸识别与地图浏览适合在自有 NAS 上私有化部署。本文带你用Docker 单容器在群晖上跑通 MT Photos轩辕镜像加速拉取、docker run一键启动、挂载已有Photos目录再跟做Web 安装向导——全程 DS920plus 实测附11 张截图与完整命令文末 FAQ 收录群晖权限踩坑修复。一、MT Photos 是什么MT Photos是一款为NAS 用户准备的照片管理系统基于 Docker 运行主要用于帮助用户高效存储、整理和管理各类照片资源。能力说明图库管理将不同文件夹的照片、视频合并展示按用户授权已有目录导入把宿主机照片文件夹映射进容器即可扫描App 备份/upload目录接收手机 App 备份的照片/视频探索视图人物、地点、场景等智能分类浏览管理工具重复文件检查、文件夹整理、人脸识别整理等典型使用场景群晖 / 威联通等 NAS集中管理散落照片替代或补充 Synology Photos家庭私有化相册不经过第三方云。部署要点单容器即可跑通基础功能内置PostgreSQL数据库数据写在/config/pgsql群晖上启动时需设置PUID/PGID见第五节。若遇权限报错见第十节 FAQ。OCR / 人脸识别等 AI 功能需额外部署配套容器不在本文范围。架构示意浏览器 ──HTTP:8063──▶ MT Photos 容器 宿主机 /volume1/docker/mt_photos/config ──▶ /config数据库、缩略图缓存 宿主机 /volume1/docker/mt_photos/upload ──▶ /uploadApp 备份 宿主机 /volume1/homes/你的用户名/Photos ──▶ /photos已有照片可选二、环境要求项目建议设备群晖 NAS本文DS920plusx86 架构系统DSM 7.x已安装Container Manager原 Docker 套件内存≥ 2 GB建议 4 GBCPU双核 2.0 GHz 以上磁盘视照片库大小而定/config会存数据库与缩略图缓存端口8063容器内外一致SSH建议开启便于命令行部署与排错验证 DockerSSH 终端docker--version群晖 NAS 镜像加速配置见 群晖 NAS Docker 镜像源配置教程。三、拉取镜像SSH 登录群晖或直接在终端操作拉取 MT Photos 镜像dockerpull docker.xuanyuan.run/mtphotos/mt-photos:latest成功时终端类似输出latest: Pulling from mtphotos/mt-photos ... Status: Downloaded newer image for docker.xuanyuan.run/mtphotos/mt-photos:latest官方镜像轩辕镜像加速拉取mtphotos/mt-photos:latestdocker pull docker.xuanyuan.run/mtphotos/mt-photos:latest四、创建数据目录MT Photos 要求持久化两个必挂目录删除容器后数据不丢失mkdir-p/volume1/docker/mt_photos/configmkdir-p/volume1/docker/mt_photos/upload宿主机目录容器内路径用途/volume1/docker/mt_photos/config/config必挂数据库、缩略图、预览视频等缓存/volume1/docker/mt_photos/upload/upload必挂App 备份的照片/视频/volume1/homes/你的用户名/Photos/photos可选已有照片目录4.1 确认已有照片路径可将群晖你的用户名对应个人 Photos 目录映射进容器。部署前先确认目录存在将你的用户名替换为 DSM 中的实际用户名ls/volume1/homes/你的用户名/Photos/路径说明/volume1/photo— 群晖共享文件夹路径只有建了名为photo的共享目录时才有/volume1/homes/你的用户名/Photos/— DSM 为该用户创建的个人照片目录Synology Photos / 手机备份常用位置Web 初始化添加图库时填容器内路径/photos。五、启动容器docker run群晖上建议启动前设置目录属主并为容器指定PUID/PGID避免内置 PostgreSQL 在/config/pgsql初始化时遇到权限问题。5.1 获取 NAS 用户 uid/gidid你的用户名示例输出数值因用户而异uid1026(你的用户名) gid100(users) groups100(users),101(administrators)记下uid与gid下文PUID/PGID及chown均以此为准。5.2 修正目录属主chown-R你的用户名:users /volume1/docker/mt_photos/configchown-R你的用户名:users /volume1/docker/mt_photos/upload5.3 启动容器dockerrun-d\--namemt-photos\--restartunless-stopped\-p8063:8063\-v/volume1/docker/mt_photos/config:/config\-v/volume1/docker/mt_photos/upload:/upload\-v/volume1/homes/你的用户名/Photos:/photos\-eTZAsia/Shanghai\-ePUID1026\-ePGID100\docker.xuanyuan.run/mtphotos/mt-photos:latest各参数说明配置说明-p 8063:8063Web 访问端口-v .../config:/config数据库与缓存持久化-v .../upload:/uploadApp 备份目录-v .../Photos:/photos已有照片库容器内路径可自定义TZAsia/Shanghai时区PUID/PGID与宿主机用户 uid/gid 一致群晖上建议必填--restart unless-stopped群晖重启后自动拉起注意PUID/PGID不能为 0不能是 root。上例1026/100仅为示例请替换为id 你的用户名的实际输出。5.4 验证启动成功dockerlogs mt-photos--tail30DS920plus 实测日志 initDb waiting for server to start.... done server started 2026-07-08T12:55:13: PM2 log: Launching in no daemon mode 2026-07-08T12:55:13: PM2 log: App [launcher:0] starting in -fork mode- 2026-07-08T12:55:13: PM2 log: App [launcher:0] online [MT Photos] : Server started, http port:8063 ___ ________ ______ _ _ | \/ |_ _| | ___ \ | | | | . . | | | | |_/ / |__ ___ | |_ ___ ___ | |\/| | | | | __/| _ \ / _ \| __/ _ \/ __| | | | | | | | | | | | | (_) | || (_) \__ \ \_| |_/ \_/ \_| |_| |_|\___/ \__\___/|___/ CREATE INDEX idx_file_clip_vec start CREATE INDEX idx_file_clip_vec success CREATE INDEX IDX_people_descriptor_v2_vec start CREATE INDEX idx_people_descriptor_v2_vec success关键判据出现Server started, http port:8063— 服务已就绪不再出现Permission denied或服务端启动异常在Container Manager → 容器中也能看到mt-photos状态为绿色运行中六、Web 安装向导浏览器打开http://你的群晖IP:80636.1 选择语言安装向导首页选择简体中文点击下一步。6.2 创建管理员账户填写管理员用户名与密码。管理员账号用于管理 MT Photos 的所有资源和用户请妥善保管。6.3 设置图库点击添加图库在弹出的文件夹选择器中选择容器内路径/photos对应宿主机/volume1/homes/你的用户名/Photos。为图库命名实测创建「太湖」图库确认后可在列表中看到已添加的图库卡片点击完成结束向导。七、登录与主界面向导完成后进入登录页使用刚创建的管理员账号登录。登录后进入照片主界面。系统会按日期分组展示图库中的照片首次加载时缩略图可能显示为加载中等待后台索引完成即可。点击任意照片可进入大图预览支持旋转、分享、收藏、查看元数据等操作。八、图库扫描与管理进入左侧管理 → 图库管理可查看已添加的图库、触发扫描。实测「太湖」图库显示「更新上传文件信息中」表示正在索引/photos下的照片。管理工具页面提供重复文件检查、文件夹整理、人脸识别整理、系统维护任务等高级功能。索引完成后探索页面会按人物、地点、场景等维度聚合照片需照片含 GPS / 人脸等元数据或部署 AI 配套容器。九、Container Manager 图形界面部署可选若偏好 DSM 可视化管理可用Container Manager → 项目创建 Compose 项目。路径建议/volume1/docker/mt-photos-project。docker-compose.ymlversion:3services:mtphotos:image:docker.xuanyuan.run/mtphotos/mt-photos:latestcontainer_name:mt-photosrestart:unless-stoppedports:-8063:8063volumes:-/volume1/docker/mt_photos/config:/config-/volume1/docker/mt_photos/upload:/upload# 群晖用户个人 Photos 目录将 你的用户名 替换为实际用户名部署前 ls 确认-/volume1/homes/你的用户名/Photos:/photosenvironment:-TZAsia/Shanghai-PUID1026-PGID100注意若已用docker run创建同名容器需先docker stop mt-photos docker rm mt-photos避免 8063 端口与容器名冲突。PUID/PGID请替换为你 NAS 用户的实际值。十、常见问题 FAQQ1首次启动报Permission denied/config/pgsql/data怎么办群晖高发若未按第五节设置PUID/PGID或config目录属主不对日志可能出现 initDb execFile stderr: sh /usr/src/app/initDb.sh initdb: error: could not access directory /config/pgsql/data: Permission denied pg_ctl: could not access directory /config/pgsql/data: Permission denied ... Debug: id postgres uid103(postgres) gid105(postgres) groups105(postgres),103(ssl-cert) ... 服务端启动异常 修复方法 https://mtmt.tech/docs/advanced/ifix原因MT Photos 内置 PostgreSQL 要求/config/pgsql目录属主为容器内postgresuid103, gid105权限为700。群晖宿主机/volume1/docker/mt_photos/config默认属root容器无法在映射目录内初始化数据库。修复步骤# 1. 停止并删除失败容器dockerstop mt-photosdockerrmmt-photos# 2. 查看 NAS 用户 uid/gidid你的用户名# 3. 清理不完整的数据库目录rm-rf/volume1/docker/mt_photos/config/pgsql# 4. 修正 config 目录属主chown-R你的用户名:users /volume1/docker/mt_photos/config# 5. 带 PUID/PGID 重建容器uid/gid 替换为 id 命令输出dockerrun-d\--namemt-photos\--restartunless-stopped\-p8063:8063\-v/volume1/docker/mt_photos/config:/config\-v/volume1/docker/mt_photos/upload:/upload\-v/volume1/homes/你的用户名/Photos:/photos\-eTZAsia/Shanghai\-ePUID1026\-ePGID100\docker.xuanyuan.run/mtphotos/mt-photos:latest# 6. 验证应出现 Server started, http port:8063dockerlogs mt-photos--tail30若仍失败在File Station中右键/volume1/docker/mt_photos/config→ 属性 → 权限确认 NAS 用户有完全控制且Everyone 有读取。不要用 SMB/NFS 远程挂载目录作为/config。官方文档常见错误及解决方法。Q28063端口被占用怎么办改端口映射例如-p 18063:8063浏览器访问http://群晖IP:18063。Q3图库里看不到已有照片确认docker run时已挂载照片目录如-v /volume1/homes/你的用户名/Photos:/photosWeb 初始化添加图库时选择容器内路径/photos不是宿主机路径进入图库管理 → 扫描所有图库触发索引Q4PUID/PGID 填什么SSH 执行id 你的用户名将输出的uid填PUID、gid填PGID例如1026/100以实际输出为准。第五节启动时已应配置。Q5需要人脸识别 / OCR 怎么办基础单容器不含 AI 服务。按 群晖 7.2 官方 Compose 示例 追加mt-photos-ai端口 8060和人脸识别 API 容器端口 8066。建议先跑通单容器再扩展。Q6CloudSync 无法感知容器内文件变化群晖不会监听 Docker 容器内对文件的改动。若需触发 CloudSync 同步官方建议通过 CIFS 挂载 SMB 共享路径详见 群晖安装方法。Q7如何停止与卸载# 停止并删除容器保留 config / upload / 照片数据dockerstop mt-photosdockerrmmt-photos# 删除全部数据慎用rm-rf/volume1/docker/mt_photos十一、命令速查操作命令拉取镜像docker pull docker.xuanyuan.run/mtphotos/mt-photos:latest创建目录mkdir -p /volume1/docker/mt_photos/{config,upload}确认照片路径ls /volume1/homes/你的用户名/Photos/查看 uid/gidid 你的用户名启动容器见第五节 5.3含 PUID/PGID 的 docker run查看日志docker logs mt-photos --tail 30Web 访问http://群晖IP:8063停止服务docker stop mt-photos docker rm mt-photos十二、延伸阅读主题链接轩辕镜像页https://xuanyuan.cloud/r/mtphotos/mt-photosMT Photos 安装文档https://mtmt.tech/docs/start/install/群晖 DSM 7.2 安装https://mtmt.tech/docs/example/dsm2/常见错误与修复https://mtmt.tech/docs/advanced/ifixDocker Hubhttps://hub.docker.com/r/mtphotos/mt-photos群晖镜像加速配置https://xuanyuan.cloud/usage/synology轩辕镜像https://xuanyuan.cloud总结MT Photos NAS 私有化照片管理单容器即可跑通。群晖部署要点拉镜像 → 建目录 → 设 PUID/PGID → docker run → 浏览器完成安装向导 → 挂载/photos导入已有图库。若遇Permission denied见第十节 FAQ。长期运行注意备份/volume1/docker/mt_photos/config按需扩展 AI 配套容器。