rclone 云存储同步工具:Docker 部署文件传输瑞士军刀

1697 字
8 分钟
rclone 云存储同步工具:Docker 部署文件传输瑞士军刀

痛点:你的文件散落在多少个云盘里?#

Google Drive 有工作文件,OneDrive 有学习资料,阿里云盘存着电影,S3 跑着业务数据,NAS 里还有家庭照片。

想同步、备份、迁移这些文件的时候,你是不是也遇到过:

  • 跨云迁移:从阿里云盘搬到 OneDrive,下载再上传?几十 GB 的文件折腾一整天
  • 定时备份:NAS 数据每天备份到云端,手动操作漏了一次就焦虑
  • 远程访问:想用服务器挂载 Google Drive 当网络硬盘用,结果发现 FUSE 配置复杂
  • 加密传输:文件传到云端前想加密,怕隐私泄露

rclone 就是专门解决这些问题的——一个命令行工具,统一管理 40+ 云存储后端,同步、备份、加密、挂载全搞定。

rclone 是什么?#

rclone 是 Nick Craig-Wood 2012 年用 Go 写的云存储同步工具,灵感来自 rsync,但针对云存储做了全面优化。

核心指标:

指标数据
⭐ GitHub Stars52.1k
🦀 语言Go
📦 最新版v1.69.2(2026-06 活跃开发中)
📄 许可证MIT
☁️ 支持后端40+(详见下方)
🐳 Docker 镜像大小~50MB

支持的后端(精选):

类别服务
☁️ 公有云Google Drive、OneDrive、Dropbox、Box
🇨🇳 国内云阿里云盘、阿里云 OSS、腾讯 COS、华为 OBS、天翼云、七牛、又拍云
🗄️ 对象存储AWS S3、MinIO、Backblaze B2、Wasabi、Cloudflare R2
📁 文件协议SFTP、FTP、WebDAV、HTTP
🔒 加密crypt(本地加密后上传)

rclone vs 其他同步工具#

特性rcloneSyncthingrsyncRestic
云存储支持40+ 后端 🏆❌ 仅本地设备间❌ 仅本地/SSH❌ 仅备份到 repo
双向同步❌ 单向❌ 单向(备份)
Docker 部署✅ 官方镜像✅ 官方镜像❌ 无官方✅ 官方镜像
加密传输✅ crypt 后端✅ TLS✅ SSH✅ 内置加密
FUSE 挂载mount 命令
增量同步
学习曲线
适合场景云备份/迁移/挂载设备间实时同步本地文件同步加密备份

一句话选型:

  • 要把文件传到云端rclone
  • 要在设备间实时同步Syncthing
  • 加密备份到本地或云端 → Restic
  • 要在服务器之间镜像rsync

Docker 部署 rclone#

方案一:一次性操作(复制/同步)#

Terminal window
# 单次同步:本地目录 → 云端
docker run --rm \
-v /your/local/data:/data:ro \
-v /home/user/rclone-config:/config/rclone \
rclone/rclone \
sync /data remote:backup-folder \
--progress --verbose

--rm:执行完自动删除容器,不留痕迹。

方案二:持续运行的服务(定时备份 + 远程挂载)#

docker-compose.yml
version: "3.8"
services:
rclone:
image: rclone/rclone:latest
container_name: rclone
command: "" # 由 entrypoint 接管
entrypoint: ["sh", "-c", ""] # 自定义,见下文
cap_add:
- SYS_ADMIN # 挂载需要
devices:
- /dev/fuse # FUSE 挂载
security_opt:
- apparmor:unconfined
volumes:
- ./config:/config/rclone
- /mnt/rclone-mount:/mnt/rclone:shared # 挂载点
- /your/local/data:/data:ro # 要备份的源数据
restart: unless-stopped

方案三:自动化定时备份#

docker-compose.backup.yml
services:
rclone-backup:
image: rclone/rclone:latest
container_name: rclone-backup
entrypoint:
["sh", "-c", "
while true; do
echo '[$(date)] Starting backup...'
rclone sync /data remote:backup-$(date +%Y%m%d) \
--progress --verbose --exclude '*.tmp'
echo '[$(date)] Backup complete. Sleeping 24h...'
sleep 86400
done
"]
volumes:
- ./config:/config/rclone
- /your/local/data:/data:ro
restart: unless-stopped

配置 rclone:添加存储后端#

首次使用需要运行 rclone config 交互式配置,或者直接复制已有的 rclone.conf

Terminal window
# 方式一:交互式配置(推荐)
docker run -it --rm \
-v /home/user/rclone-config:/config/rclone \
rclone/rclone config
# 方式二:直接复制已有配置
cp ~/.config/rclone/rclone.conf ./config/

配置示例:Google Drive#

rclone config 交互中选择 Google Drive,按提示获取 API 凭据即可。完成后 rclone.conf 大概长这样:

[gdrive]
type = drive
scope = drive
client_id = xxx.apps.googleusercontent.com
client_secret = xxx
token = {"access_token":"...","token_type":"Bearer",...}

配置示例:阿里云盘#

[aliyun]
type = alidrive
client_id =
client_secret =
refresh_token = xxx
root_folder_id = root

阿里云盘不需要 client_id/client_secret,直接获取 refresh_token 即可。

rclone 常用命令#

1. 文件列表#

Terminal window
rclone ls remote:path # 列出文件
rclone lsd remote:path # 列出目录
rclone lsl remote:path # 列出文件(含时间戳)

2. 复制与同步#

Terminal window
# copy:增量复制,不删除目标端多余文件
rclone copy /local/data remote:backup
# sync:完全同步,目标端多余文件会被删除
rclone sync /local/data remote:backup
# 带过滤的同步
rclone sync /data remote:backup \
--exclude '*.tmp' \
--exclude 'node_modules/**' \
--max-size 500M

3. 移动和删除#

Terminal window
rclone move /local/data remote:archive # 移动
rclone delete remote:old-files # 删除
rclone purge remote:trash # 清空目录

4. FUSE 挂载(把云盘当本地硬盘用)#

Terminal window
# Docker 中挂载需要 --cap-add SYS_ADMIN + /dev/fuse
rclone mount remote: /mnt/rclone \
--allow-other \
--read-only \
--daemon

实战场景#

场景一:每日备份网站数据到 S3#

Terminal window
# crontab 或 Docker 定时任务
rclone sync /var/www/html s3:my-website-backup \
--exclude 'cache/**' \
--backup-dir s3:my-website-backup/old-$(date +%Y%m%d)

场景二:NAS 数据加密备份到云端#

# rclone.conf 配置 crypt 后端
[data-encrypted]
type = crypt
remote = gdrive:encrypted-backup
password = <加密密码>
salt = <加密盐值>
# 使用
rclone sync /nas/data data-encrypted:/

场景三:阿里云盘 → OneDrive 跨云迁移#

Terminal window
# 先配置好两个 remote
# aliyun: 阿里云盘
# onedrive: OneDrive
# 直接跨云同步,不需经过本地硬盘
docker run --rm \
-v ./config:/config/rclone \
rclone/rclone \
sync aliyun:/ onedrive:/migrated-from-aliyun \
--progress --transfers 8

性能调优#

Terminal window
# 并行传输
rclone sync ... --transfers 8 # 默认 4,最高可设 32
# 分块大小
rclone sync ... --s3-chunk-size 64M # 大文件调大块
# 带宽限制
rclone sync ... --bwlimit 10M # 限制 10MB/s,避免占满带宽
# 检查模式
rclone sync ... --checksum # 用校验和而非时间戳比较
# 断点续传
rclone sync ... --ignore-existing # 跳过已存在的文件

FAQ#

Q:rclone 和 rsync 有什么区别?

A:rsync 只支持本地和 SSH 传输,rclone 支持 40+ 云存储后端。rsync 基于文件差异传输(更省带宽),rclone 基于文件级别同步(不支持增量差异)。

Q:Docker 部署 rclone 配置文件放哪?

A:默认读取 /config/rclone/rclone.conf。挂载一个本地目录即可:-v ./config:/config/rclone

Q:rclone 支持增量同步吗?

A:支持。copysync 都是增量的——只传输新增和变化的文件。首次全量,后续增量。

Q:FUSE 挂载有什么限制?

A:Docker 中需要 --cap-add SYS_ADMIN--device /dev/fuse。挂载性能不如本地文件系统,适合读多写少的场景(如看视频)。

Q:rclone 免费吗?

A:完全免费开源,MIT 协议。没有功能限制,没有付费版,没有云服务绑定。

Q:国内用户能用 rclone 吗?

A:完美支持。内置阿里云盘、腾讯 COS、华为 OBS、天翼云、七牛、又拍云等国内后端。

总结#

rclone 是云存储时代的瑞士军刀——一个工具管理 40+ 后端,同步、备份、加密、挂载全搞定。

用 Docker 部署 rclone 的好处:

  1. ✅ 无需在宿主机安装 Go 或 rclone 二进制
  2. ✅ 配置文件持久化,升级容器不丢失
  3. ✅ 定时任务用 Docker 跑,不需要 crontab 配置
  4. ✅ FUSE 挂载在容器内隔离,不污染宿主机
  5. ✅ 团队共享同一套配置和脚本

不管你是个人用户管理照片备份,还是运维工程师做云端数据迁移,rclone + Docker 都是最趁手的工具。


本文由小啪撰写,基于 rclone v1.69.2。

支持与分享

如果这篇文章对你有帮助,欢迎分享给更多人或赞助支持!

赞助
rclone 云存储同步工具:Docker 部署文件传输瑞士军刀
https://www.kshare.top/posts/2026-rclone-云存储全能同步工具docker-部署文件传输瑞士军刀/
作者
Kshare
发布于
2026-06-30
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Kshare
Hello, I'm Kshare.
公告
站点已开启广告(类型:弹窗广告),给您带来的不便敬请谅解。如有更好的广告建议,欢迎发送邮件至 t9uzrz6u@anonaddy.me,感谢您的支持!
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
187
分类
9
标签
190
总字数
490,175
运行时长
0
最后活动
0 天前

文章目录