用 Docker Compose 部署云盘挂载容器的配置模板
镜像与架构
官方镜像名是 cloudnas/clouddrive2,同一个名字下有 amd64、arm64、arm32 三种架构的 tag,按宿主机 CPU 选。镜像拉不到最新版时,先检查是不是加速器缓存了旧版本,必要时禁用加速器直连官方源。
Compose 模板
services:
clouddrive2:
image: cloudnas/clouddrive2
container_name: clouddrive2
restart: unless-stopped
environment:
- TZ=Asia/Shanghai
- CLOUDDRIVE_HOME=/Config
volumes:
- <接收挂载的宿主机目录>:/CloudNAS:shared
- <应用数据目录>:/Config
- <其他本地媒体目录>:/media:shared
devices:
- /dev/fuse:/dev/fuse
privileged: true
network_mode: host
pid: "host"
等价的 CLI 写法(docker run 加 --privileged --network host --pid host --device /dev/fuse:/dev/fuse 与相同卷映射)二选一即可。
逐项解释:哪些能省、哪些不能
| 配置 | 作用 | 能不能省 |
|---|---|---|
/CloudNAS:shared | 网盘挂载出现的位置,带 shared 才能传播回宿主机 | 不能省,:shared 也不能省 |
/Config + CLOUDDRIVE_HOME | 配置持久化,容器重建后账户、挂载点都在 | 不能省 |
/media:shared | 宿主机其他本地目录纳入统一管理 | 可选 |
/dev/fuse 设备映射 | FUSE 挂载的前提 | 不能省 |
privileged | 允许容器做文件系统挂载 | 不能省(或按最小化给 SYS_ADMIN 能力) |
network_mode: host | 用宿主机网络栈,省端口映射 | 可改为映射 19798 端口 |
pid: host | 访问监控按进程看才准确 | 可选 |
前置检查别跳过
容器里的挂载要能出现在宿主机,宿主机目录的挂载传播必须是 shared。不少系统出厂就开着,先查再动:
findmnt -o TARGET,PROPAGATION /path/to/dir
PROPAGATION 列写着 shared 就直接启动容器;没开的两种处理方式单独成篇,见容器挂载看不见时的共享传播排查。
LibreELEC、CoreELEC、飞牛 fnOS 据官方说明默认已开,查一眼确认即可,别白改。飞牛更推荐直接用原生套件,原因见各家 NAS 的套件安装指引。
启动后
浏览器访问宿主机 19798 端口注册账号、接网盘;Docker 里容器自身地址通常不可达,访问地址一律用宿主机 IP。