Docker 部署 CloudDrive2:轻松搭建多云盘本地挂载平台

本文基于 cloudnas/clouddrive2:latest(实测 CloudDrive2 v1.0.13),面向 Ubuntu 24.04 等 Linux。

百度、阿里、115、天翼、迅雷……账号越开越多,客户端也越装越多:备份脚本要写一堆 SDK,媒体库又想「直接扫某个目录」,结果文件还是散在各个网盘里。商业聚合工具要么收费,要么数据要经第三方;纯 Web 列表类工具(如 AList)适合在线浏览,却未必能把云盘 挂成宿主机上的真实目录

CloudDrive2 正是为此而生的多云盘管理工具:在浏览器里添加各类云存储,再用 FUSE 把它们挂到容器内的 /CloudNAS,并通过 Docker 卷的 shared 传播,让你在宿主机上像操作本地硬盘一样读、写、扫库。社区维护的 Docker 镜像坐标为 cloudnas/clouddrive2(见 镜像页)。

本文按「能跟做」写完整链路:用 轩辕镜像 加速拉取 cloudnas/clouddrive2:latest,完成 FUSE / MountFlags 宿主机准备,Compose 启动,浏览器访问 :19798——注册登录、添加迅雷云盘、配置挂载点与 WebDAV,并浏览系统设置与会员能力边界。全程零基础可跟做,文内附 19 张实测界面截图

上手要点

  • 端口:默认 Web 19798(常用 network_mode: host,此时不要再写 ports
  • 权限:需要 /dev/fuse + privileged: true(或等价能力);并启用 shared 挂载传播
  • 目录/Config 存配置与缓存;/CloudNAS 是云盘挂载点(宿主机路径需 :shared
  • 标签:稳定通道用本文的 cloudnas/clouddrive2;官方部分示例写的是 clouddrive2-unstable(新功能尝鲜,见第三节)
  • 账号:无固定默认密码;首次打开 Web 点 注册 创建账户后再登录
  • 防火墙:本机 curl 通但浏览器超时 → 多为 ufw 未放行 19798(见 FAQ)

镜像说明见 cloudnas/clouddrive2,标签列表见 tags。项目站点:clouddrive2.com


一、CloudDrive2 是什么?

一句话:CloudDrive2 = 多云盘 Web 管理 + FUSE 本地挂载,把分散网盘收成「本机目录」。

1.1 它能做什么

能力说明
多云接入OneDrive、Google Drive、百度、阿里云盘 Open、115open、天翼、迅雷、123、PikPak,以及 WebDAV / S3 / SFTP / FTP / SMB / 本地文件夹等
本地挂载通过 fuse3 挂到 /CloudNAS,宿主机路径可直接 ls / 给媒体库扫描
Web 管理浏览器配置账号、挂载点、任务、备份;默认端口 19798
WebDAV内置 WebDAV 服务(如 http://IP:19798/dav),方便第三方客户端接入
多架构amd64 / arm64 / armv7(arm32)

典型场景:家用 NAS 统一挂多网盘做备份源;给 Jellyfin / Emby 等扫「已挂载」的媒体目录;脚本与同步工具按本地路径读写云端文件。

1.2 和 AList 一类工具差在哪?

CloudDrive2AList 等 Web 列表
核心形态FUSE 挂载到本机文件系统主要在浏览器 / API 里列目录
适合需要「路径即文件」、给其他程序直接读目录在线浏览、分享、聚合入口
部署注意强依赖 FUSE、privileged、shared 卷一般只需端口与数据卷

两者可并存:AList 做 Web 入口,CloudDrive2 做本机挂载,按需求选用。

1.3 架构(跟做时先记住)

浏览器 :19798 ──▶ CloudDrive2(Web / 任务)
                      │
                      ├── /Config     (配置、缓存,持久化)
                      └── /CloudNAS   (FUSE 云盘挂载点,:shared 传到宿主机)

二、环境要求

项目建议
系统Linux,建议 Ubuntu 24.04(本文按此写);需支持 FUSE
DockerEngine + Compose V2
权限容器需访问 /dev/fuse;推荐 privileged: truepid: host
内存建议 ≥ 1 GB 可用(挂载多盘、缓存大时再加)
磁盘/Config 与缓存会增长;云文件本身在远端,本地主要吃缓存
端口19798(host 网络时直接占用宿主机该端口)
内核宿主机需有 FUSE;多数发行版默认可用
docker --version
docker compose version
ls -l /dev/fuse

Linux 未装 Docker 可使用轩辕镜像一键安装脚本:

bash <(wget -qO- https://xuanyuan.cloud/docker.sh)

更多见 轩辕镜像使用手册

说明:Windows / macOS 桌面 Docker 对 FUSE 与 shared 挂载支持有限,强烈建议在 Linux 服务器或 NAS 上部署。群晖等 NAS 请额外确认套件 / 内核是否允许 FUSE 与 privileged 容器。


三、标签与镜像怎么选

镜像 / 标签说明推荐
cloudnas/clouddrive2:latest稳定通道(本文跟做)试用 / 日常首选
cloudnas/clouddrive2:<具体版本标签>钉版本,便于回滚生产可钉死具体 tag
cloudnas/clouddrive2-unstable新功能更激进;官方部分 README 示例用此坐标仅尝鲜 / 测试
架构相关标签镜像页说明 x86-64→amd64、arm64、armv7→arm32一般多架构 latest 即可;异常再指定

完整标签见:xuanyuan.cloud/r/cloudnas/clouddrive2/tags

镜像页中文简介里的 Compose 示例有时写成 clouddrive2-unstable。本文统一用稳定镜像 cloudnas/clouddrive2;若你要跟官方最新特性,把 image: 换成 docker.xuanyuan.run/cloudnas/clouddrive2-unstable:latest 即可,其余参数相同。


四、运行前准备(FUSE / shared,必做)

CloudDrive2 用 fuse3 挂载云存储,并把挂载点共享到宿主机。下列 二选一(推荐选项 1,一次配好)。

4.1 选项 1:Docker 服务 MountFlags=shared(推荐)

sudo mkdir -p /etc/systemd/system/docker.service.d/

sudo tee /etc/systemd/system/docker.service.d/clear_mount_propagation_flags.conf >/dev/null <<'EOF'
[Service]
MountFlags=shared
EOF

sudo systemctl daemon-reload
sudo systemctl restart docker

重启 Docker 会短暂中断所有容器,请选维护窗口操作。

4.2 选项 2:仅对挂载接收目录 make-shared

先建目录,再对该路径执行:

sudo mkdir -p /www/wwwroot/clouddrive2/{CloudNAS,Config,media}
sudo mount --make-shared /www/wwwroot/clouddrive2/CloudNAS

重启后若挂载传播丢失,需重新执行 mount --make-shared,或改用选项 1。

4.3 创建数据目录

sudo mkdir -p /www/wwwroot/clouddrive2/{CloudNAS,Config,media}
sudo chown -R "$USER:$USER" /www/wwwroot/clouddrive2
cd /www/wwwroot/clouddrive2
宿主机目录容器内路径用途
CloudNAS//CloudNAS:shared云盘挂载点(必填;必须 shared)
Config//Config配置、缓存、应用数据(必填)
media//media:shared可选:额外本机媒体目录

路径可按磁盘规划修改,但 Compose / docker run 里两处要一致。


五、拉取镜像(轩辕镜像加速)

cd /www/wwwroot/clouddrive2

docker pull docker.xuanyuan.run/cloudnas/clouddrive2:latest

实测拉取输出(Ubuntu 24.04):

latest: Pulling from cloudnas/clouddrive2
d4b89421a3d2: Pull complete
b782f8067a66: Pull complete
7487fd4fc677: Pull complete
2977c4b8091a: Pull complete
68b66f9e268b: Pull complete
55afa1ecc21d: Pull complete
505a07c398c6: Download complete
Digest: sha256:5491c21fb14a5774576515f8483ecdbe2780bf525985f426785b99488e7cc09d
Status: Downloaded newer image for docker.xuanyuan.run/cloudnas/clouddrive2:latest
docker.xuanyuan.run/cloudnas/clouddrive2:latest

确认本地镜像:

docker images | grep -i clouddrive2

实测可见类似:

docker.xuanyuan.run/cloudnas/clouddrive2:latest   5491c21fb14a       68.8MB           21MB
官方镜像(Docker Hub)轩辕镜像加速拉取
cloudnas/clouddrive2:latestdocker pull docker.xuanyuan.run/cloudnas/clouddrive2:latest

六、快速体验:Docker Compose(推荐)

6.1 编写 docker-compose.yml

cd /www/wwwroot/clouddrive2

cat > docker-compose.yml << 'EOF'
services:
  cloudnas:
    image: docker.xuanyuan.run/cloudnas/clouddrive2:latest
    container_name: clouddrive2
    environment:
      - TZ=Asia/Shanghai
      - CLOUDDRIVE_HOME=/Config
    volumes:
      - /www/wwwroot/clouddrive2/CloudNAS:/CloudNAS:shared
      - /www/wwwroot/clouddrive2/Config:/Config
      - /www/wwwroot/clouddrive2/media:/media:shared
    devices:
      - /dev/fuse:/dev/fuse
    restart: unless-stopped
    pid: "host"
    privileged: true
    network_mode: "host"
    # 若 host 网络不可用,可注释 network_mode,改用:
    # ports:
    #   - "19798:19798"
EOF

6.2 参数在干什么

作用
CLOUDDRIVE_HOME=/Config应用数据根目录(与卷一致)
/CloudNAS:shared云挂载点;缺 shared 时宿主机往往看不到挂载
/dev/fuseFUSE 设备
privileged: true多数环境挂载必需;部分系统可试仅 cap_add: [SYS_ADMIN],失败则改回 privileged
pid: host官方推荐
network_mode: host简化网络;Web 在宿主机 19798。不生效时改端口映射

6.3 启动并验证

cd /www/wwwroot/clouddrive2
docker compose up -d
docker ps --filter name=clouddrive2
docker logs clouddrive2 --tail 50

实测 docker ps 可见容器 Up;日志出现类似:

welcome to clouddrive v1.0.13 with cloudapi v1.0.13 build 26-07-23 20:58:43
database schema upgraded to version 1
database initialized

先在服务器本机探测(确认服务已监听):

ss -lntp | grep 19798
curl -sI --max-time 5 http://127.0.0.1:19798/ | head -n 5
hostname -I

本机应看到 LISTEN … *:19798,以及 HTTP/1.1 200 OK。浏览器用 hostname -I 的局域网地址访问(本文实测为 192.168.1.10):

http://192.168.1.10:19798

若本机 curl 通、浏览器超时:执行 sudo ufw allow 19798/tcp && sudo ufw reload(见第十节 FAQ)。


七、备选:一条 docker run

与 Compose 等价,适合快速试用:

docker run -d \
  --name clouddrive2 \
  --restart unless-stopped \
  --env TZ=Asia/Shanghai \
  --env CLOUDDRIVE_HOME=/Config \
  -v /www/wwwroot/clouddrive2/CloudNAS:/CloudNAS:shared \
  -v /www/wwwroot/clouddrive2/Config:/Config \
  -v /www/wwwroot/clouddrive2/media:/media:shared \
  --network host \
  --pid host \
  --privileged \
  --device /dev/fuse:/dev/fuse \
  docker.xuanyuan.run/cloudnas/clouddrive2:latest

停止 / 删除(数据在宿主机目录,删容器不删配置):

docker stop clouddrive2 && docker rm clouddrive2

八、浏览器首次使用:注册与登录

打开 http://<主机IP>:19798,进入登录页。全新实例没有默认管理员,先点 注册

picture.image

填写邮箱、密码、确认密码后点 创建账户

picture.image

创建成功后回到登录页,会出现绿色提示「账户创建成功!请使用您的凭据登录」。填入账号密码,按需勾选 同步数据到云端 / 记住我,点 登录

picture.image

同步数据到云端:便于多端 / 换机恢复账号侧配置;若你只想数据留在本机,可取消勾选(以产品当前策略为准)。密码请用密码管理器保存,不要用弱口令。


九、仪表盘:先认识主界面

登录后进入 仪表盘。左侧按「概览 / 浏览 / 管理 / 系统管理」分组;顶部显示在线状态与访问地址(实测 192.168.1.10:19798)。

首次未添加任何云盘时,卡片计数多为 0:文件浏览器、挂载、云存储、备份、API 令牌等;WebDAV 可能已显示默认用户数。底部有系统任务与性能监控占位。

picture.image

侧栏入口用途
云存储添加 / 管理各类网盘账号
挂载把云端目录挂到容器路径(如 /CloudNAS
文件Web 内浏览已接入的存储
任务 / 备份传输任务与备份策略
WebDAV对外提供 WebDAV 地址
设置 / 性能 / 关于缓存、界面、监控与版本信息

日常上手建议顺序:云存储 → 挂载 → 文件,需要第三方客户端时再开 WebDAV。


十、添加云存储(以迅雷云盘为例)

侧栏进入 管理 → 云存储,点 + 添加云盘。弹窗分两块:

  • 云存储:OneDrive、Google Drive、百度网盘、阿里云盘 Open、115open、天翼云盘、迅雷云盘、123云盘、光鸭(PikPak)等
  • 本地 / 协议:WebDAV、CloudDrive、S3、SFTP、FTP、SMB、本地文件夹

picture.image

本文实测选择 迅雷云盘。进入授权页后点 授权 Xunlei,会打开身份验证窗口。

picture.image

在授权登录页核对权限说明(用户管理、获取头像昵称与会员状态等),点 同意

picture.image

授权成功后,云存储 列表会出现卡片,展示已用 / 总量与进度条;可 打开 浏览、配置移除

picture.image

打开,或侧栏 浏览 → 文件,即可像资源管理器一样进入「迅雷云盘」目录,查看名称、大小、修改时间。

picture.image

其他网盘流程类似:选提供商 → OAuth / 扫码 / 账号授权 → 回到云存储列表。注意各家 API 与会员策略不同,限速与权限以网盘方为准。


十一、配置挂载点(让宿主机能当本地盘用)

Web 里能浏览还不够——要把云端目录挂到 Docker 映射的 /CloudNAS,宿主机 /www/wwwroot/clouddrive2/CloudNAS 才能被 ls、媒体库、脚本使用。

侧栏 管理 → 挂载,点 + 添加挂载点

字段建议
挂载名称自定义标识,默认常见为 CloudDrive
源目录选已授权云盘下的目录(或根)
挂载点选容器内路径,跟做请选 /CloudNAS(或 /CloudNAS/子目录
只读仅读取时勾选,更安全
启动时自动挂载建议勾选,容器重启后自动恢复

picture.image

点挂载点旁的文件夹图标,在 选择挂载点 对话框里选中 CloudNAS(列表中还有 Configmedia 等),再点 选择

picture.image

保存后,在宿主机验证:

ls -la /www/wwwroot/clouddrive2/CloudNAS

应能看到对应挂载内容。媒体库(Jellyfin / Emby 等)可把库路径指到该目录下的影片文件夹。

若 Web 里已挂载但宿主机仍为空:回头检查第四节 MountFlags / make-shared,以及 Compose 里是否写了 :shared


十二、WebDAV:给其他软件用同一套存储

侧栏 系统管理 → WebDAV。服务可一键启用;实测地址形如:

http://192.168.1.10:19798/dav

可开启 CloudDrive 账户 认证(根路径 /),匿名访问 默认关闭(公网务必保持关闭)。也可按需添加独立 WebDAV 用户。

picture.image

适合:把聚合后的存储挂进支持 WebDAV 的同步盘、播放器或办公软件。生产环境建议前面加 HTTPS 反向代理,不要长期明文暴露。


十三、设备、设置与性能

13.1 设备

系统管理 → 设备 显示当前运行主机(实测设备名 ubuntu2404、版本 1.0.13、平台 LINUX),用于确认实例身份与多端绑定情况。

picture.image

13.2 设置 · WebUI / 媒体

系统 → 设置 → WebUI:启动页、最近文件、视频缩略图、每页文件数、语言与主题等。右侧 媒体 可设幻灯片间隔、默认字幕编码(中文环境常见 gb18030)。

picture.image

13.3 设置 · 系统 / 缓存

设置 → 系统:设备名称、启动延迟、目录缓存时间、临时文件路径(默认 /Config/temp)、文件缓冲磁盘缓存(默认 /Config/file_buffer_cache,实测上限 512MB、LRU)、更新通道(正式版)等。

picture.image

这些路径都在已映射的 /Config 下,备份 Config/ 即可带走大部分本地状态。

13.4 性能监控

系统 → 性能:实时 CPU / 内存 / 上下行,以及近 60 秒曲线与句柄、缓存等详情,便于排查卡顿或异常流量。

picture.image


十四、个人资料、会员与关于

14.1 个人资料

系统 → 个人资料:查看邮箱与套餐、验证邮箱、启用双因素认证、修改密码 / 邮箱、退出登录。建议至少设置强密码;对外可访问时务必开 双因素认证

picture.image

14.2 会员与功能边界

系统 → 会员 展示当前套餐(实测 Basic)及功能开关:例如云盘账号数、挂载点数、多云备份、跨云秒传、加密、WebDAV 多用户、直链等。部分高级能力在 Basic 下为「已禁用」,需按官方会员说明开通;底部可输入激活码。

picture.image

跟做部署与基础挂载一般在 Basic 即可完成;是否升级取决于你是否需要高级传输 / 加密等能力。

14.3 关于与版本

系统 → 关于 可核对产品名、版本(实测 1.0.13 Build 26-07-23 20:58:43)、CLOUDAPI / WEBUI 版本、检查更新、重启服务或清除缓存重载,并链到官网与许可协议。

picture.image


十五、日常用法速查

场景做法
当本地盘用宿主机访问 …/CloudNAS/(或你设的挂载子路径)
Web 浏览 / 整理侧栏 文件,进入对应云盘目录
媒体库扫库Jellyfin / Emby / Plex 库路径指向 CloudNAS 下媒体目录
第三方客户端启用 WebDAV:http://IP:19798/dav + 账户认证
多网盘云存储 继续添加;再按需增加挂载点(受会员额度限制)
换机迁移备份整个 Config/,新机同样完成 FUSE / MountFlags 后再启动

合规与安全:请遵守各网盘服务条款;勿把管理员 Web 端口裸奔公网,建议内网访问或加反向代理 + HTTPS + 访问控制。privileged 容器权限很高,务必限制谁能访问 Docker 与宿主机。


十六、升级与备份

操作建议
备份停容器后备份整个 Config/;云文件在远端,一般不必备份 CloudNAS 内容本身
升级docker compose pull && docker compose up -d;或在 关于 页检查更新;也可钉 tags 后改 image:
回滚改回旧 tag,重新 up -d;保留 Config/
换机拷贝 Config/(及 Compose),新机完成 FUSE / MountFlags 后再启动
cd /www/wwwroot/clouddrive2
docker compose pull
docker compose up -d

十七、常见问题 FAQ

Q1:容器 Up 了,但宿主机 CloudNAS 是空的?
多数是 未启用 shared 挂载传播,或 Web 里尚未添加挂载点。检查第四节 MountFlags / make-shared;Compose 卷后缀必须是 :shared;并在 挂载 页完成源目录 → /CloudNAS

Q2:日志提示 fuse / Operation not permitted?
确认映射了 /dev/fuse,并使用 privileged: true。部分发行版仅加 SYS_ADMIN 不够。

Q3:浏览器 ERR_CONNECTION_TIMED_OUT / 打不开 :19798?

Ubuntu 24.04 实测:容器已 Up、本机 curl http://127.0.0.1:19798/ 返回 200 OK,但浏览器超时——原因是 ufw 已启用却未放行 19798。放行后即可访问。

按顺序排查:

  1. IP:用 hostname -I 的局域网地址(本文示例环境为 192.168.1.10;换机器勿照抄)。
  2. 本机是否已监听ss -lntp | grep 19798curl -sI http://127.0.0.1:19798/。本机都不通 → 看 docker logs clouddrive2
  3. 防火墙(最常见)
sudo ufw status
sudo ufw allow 19798/tcp
sudo ufw reload

云主机还要在 安全组 放行入站 19798/tcp
4. 仍不通:去掉 network_mode: host,改映射端口后重建:

    # network_mode: "host"
    ports:
      - "19798:19798"
docker compose down && docker compose up -d

Q4:和镜像页示例的 clouddrive2-unstable 有何区别?
clouddrive2 偏稳定;clouddrive2-unstable 更新更勤、功能可能更新也更易变。本文用稳定坐标;尝鲜可换 unstable。

Q5:群晖 / 飞牛上能跑吗?
理论上可以,但取决于 NAS 是否提供 FUSE、是否允许 privileged。若套件限制严格,优先考虑带完整 Docker 的 Linux 主机。

Q6:拉取很慢或失败?
确认使用 docker.xuanyuan.run/cloudnas/clouddrive2:…;报错码对照 轩辕镜像常见问题不要一失败就改回直连官方源作为默认策略。

Q7:可以去掉 privileged 吗?
部分环境可试:

    # privileged: true
    cap_add:
      - SYS_ADMIN

若挂载失败,改回 privileged: true

Q8:Basic 会员不够用?
会员 页查看当前额度与禁用项;按需购买 / 激活官方套餐。基础「添加云盘 + 挂载 + Web 浏览」通常可先在 Basic 验证流程。


十八、命令速查

# 拉取
docker pull docker.xuanyuan.run/cloudnas/clouddrive2:latest

# Compose 启停
cd /www/wwwroot/clouddrive2
docker compose up -d
docker compose ps
docker compose logs -f --tail=100
docker compose down

# 宿主机看挂载
ls -la /www/wwwroot/clouddrive2/CloudNAS

# 防火墙(实测必需)
sudo ufw allow 19798/tcp && sudo ufw reload

# Web
# http://<主机IP>:19798
# WebDAV 示例:http://<主机IP>:19798/dav

十九、延伸阅读


总结

  • CloudDrive2 用 Docker + FUSE 把多网盘 挂到本机目录,浏览器 19798 管理。
  • 部署关键三件套:FUSE 设备、privileged、CloudNAS 的 shared 卷(外加 MountFlags 或 make-shared);Ubuntu 上别忘了 ufw allow 19798
  • 轩辕镜像 加速拉取 cloudnas/clouddrive2:latest,Compose 一键启动。
  • 用法主线:注册登录 → 云存储授权 → 挂载到 /CloudNAS →(可选)WebDAV / 设置与会员
0
0
0
0
评论
未登录
暂无评论