使用威联通 NAS 的容器安装 icloudpd 同步下载苹果 iCloud 照片服务

环境信息

  • 设备型号:QNAP TS-532X
  • CPU:Annapurna Labs Alpine AL324 Quad-core ARM Cortex-A57 1.70GHz
  • 内存:8 GB
  • 系统版本:QTS 5.2.8.3359 Build 20251225
  • 服务目标:使用 Docker 容器部署 icloudpd,实现 iCloud 照片自动同步至 NAS 本地存储
  • 代理:控制台开启代理

前置准备

  1. 开启 NAS SSH 服务

    路径:QTS 控制台 → 网络和文件服务 → Telnet/SSH,勾选

    允许 SSH 连接,保存设置。

  2. 确认 Container Station 已安装并正常运行,确保 Docker 服务处于活跃状态。

  3. 准备内网可访问的代理服务(用于解决 Docker 镜像拉取失败问题)。

SSH 登录 NAS

登录后并退出控制台菜单

  1. 本地终端执行 SSH 连接(以 Mac/Linux 终端为例)
ssh admin@192.168.2.20
  1. 输入管理员密码登录,进入 QNAP 控制台菜单界面

  2. 输入q,回车退出主菜单

  +-------------------------------------------------------------------------+
  |  Console Management - Main menu                                         |
  |                                                                         |
  |  1: Show network settings                                               |
  |  2: System event logs                                                   |
  |  3: Reset to factory default (password required)                        |
  |  4: Activate/ deactivate a license                                      |
  |  5: App management                                                      |
  |  6: Reboot in Rescue mode (w/o configured disk)                         |
  |  7: Reboot in Maintenance Mode                                          |
  |  Q: Quit (return to normal shell environment)                           |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  +-------------------------------------------------------------------------+
  >> q
  1. 确认退出:输入y,回车,进入 NAS 原生 Linux shell 环境
  +-------------------------------------------------------------------------+
  |  Main > Quit                                                            |
  |                                                                         |
  |  Are you sure you want to exit the console menu and return to normal    |
  |  shell environment? (Y/N)                                               |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  |                                                                         |
  +-------------------------------------------------------------------------+
  >> y

MTU 调整修复镜像拉取 EOF 错误

部分网络环境下,默认 MTU 1500 会导致大镜像传输中断、报 EOF 错误,可临时降低 MTU 测试:

# 临时调整网桥与物理网卡MTU(重启/重连网络后失效)
ifconfig br0 mtu 1400
ifconfig eth0 mtu 1400

调整完成后,重新执行镜像拉取命令:

docker pull boredazfcuk/icloudpd:latest

后续部署建议

  1. 镜像拉取成功后,创建本地配置与照片存储目录,做好目录权限规划。
  2. 编写 docker-compose.yml 或通过 Container Station 图形化配置容器,挂载目录、设置环境变量(Apple ID、时区、同步策略等)。
  3. 进入容器执行初始化认证,完成 Apple ID 两步验证,实现自动同步。
  4. 若 MTU 调整有效,可将命令写入开机自启脚本,避免重启后失效。

先在 NAS 上创建目录

# 创建配置目录
mkdir -p /share/Container/icloudpd/config

# 创建照片下载目录(根据你实际共享文件夹改后面路径)
mkdir -p /share/Photos/iCloud_Sync

# 赋权(避免容器无权限写入)
chmod -R 777 /share/Container/icloudpd
chmod -R 777 /share/Photos/iCloud_Sync

docker-compose.yml 配置

/share/Container/icloudpd/ 下新建 docker-compose.yml,内容如下:

version: '3'

services:
  icloudpd:
    image: boredazfcuk/icloudpd:latest
    container_name: icloudpd
    restart: unless-stopped
    network_mode: bridge
    volumes:
      - /share/Container/icloudpd/config:/config
      - /share/Photos/iCloud_Sync:/home/icloudpd/Media
    environment:
      - TZ=Asia/Shanghai
      - USERNAME=你的苹果ID@gmail.com
      - SUBDIR_FORMAT=YYYY-MM
      - DOWNLOAD_LIVE_PHOTOS=True
      - DOWNLOAD_VIDEOS=True
      - AUTO_DELETE=False
      - SYNC_INTERVAL=360
      - PAGE_SIZE=1000
      - RECENTLY_ONLY=False
      - PREFER_JPG=True
    stop_grace_period: 1m

你只需要改这一处:

USERNAME=你的苹果ID@gmail.com

启动容器 & 初始化认证

进入配置目录

cd /share/Container/icloudpd

后台启动容器

docker-compose up -d

进入容器登录认证

docker exec -it icloudpd /bin/bash

进入容器后执行:

sync_icloud

按提示依次输入:

  • Apple ID 密码

  • 两步验证 6 位数字

  • 信任此设备 → 输入 1

    出现 Authentication completed successfully即完成。

退出容器:

exit

常用管理命令

# 启动
docker-compose up -d

# 停止
docker-compose down

# 重启
docker-compose restart

# 实时查看日志(看是否在正常下载)
docker logs -f icloudpd

如果拉镜像仍然 EOF / 失败

执行你之前那套 MTU 命令后再拉:

ifconfig br0 mtu 1400
ifconfig eth0 mtu 1400
docker pull boredazfcuk/icloudpd:latest