🚀 使用 Docker Compose 部署 Resilio Sync
🚀 使用 Docker Compose 部署 Resilio Sync
Resilio Sync 是一款基于 P2P (点对点) 技术 的文件同步工具,前身为 BitTorrent Sync。它能够直接在您的设备间同步文件,无需通过中央服务器。采用 BitTorrent 协议 进行文件同步和共享,Resilio Sync 支持全平台,包括 Windows、macOS、Linux、iOS 和 Android。
📦 项目简介
Resilio Sync 的核心优势在于其 去中心化的同步方式 和 高效的数据传输。
主要功能特点: * 🔒 本地网络优先与安全性:在 局域网 (LAN) 内同步 时,数据传输不经过外网,速度更快且更安全。所有同步数据都经过 AES 加密,确保隐私。 * ⚡ 高效的同步性能:支持 增量同步,当文件发生变化时,只同步文件中已修改的部分,而非整个文件,这在大文件同步时尤其高效。 * 🌐 灵活的同步与分享:可以通过 生成密钥 (Key) 或链接 (Link) 的方式分享文件或文件夹。支持 选择性同步 (Pro 版本功能),允许用户选择只同步文件夹中的特定子文件夹或文件。 * 📊 多场景应用:适用于个人数据备份与同步、团队协作共享大型文件或项目文件夹,以及远程工作者安全访问和同步公司文件。
⚙️ 部署前准备
-
环境要求
- 确保您的系统已安装 Docker 和 Docker Compose。
- 系统内存:建议 1GB 以上。
- 确保服务器的 8888 和 55555 端口 未被占用。
-
环境检查 在终端中执行以下命令,确认 Docker 环境正常:
bash docker --version docker-compose --version -
创建项目目录 建议创建一个独立的目录来管理 Resilio Sync 的所有文件。
bash mkdir -p /opt/docker/resilio-sync cd /opt/docker/resilio-sync
🛠️ 配置 Docker Compose
基于您提供的配置,这里是对 docker-compose.yml 文件的解读和优化说明。
#version: '3'
services:
resilio-sync:
image: resilio/sync # 使用官方 Resilio Sync 镜像
container_name: resilio_sync # 容器名称,便于管理
volumes:
#- ./webdav_storage:/mnt/sync/folders/webdav_storage:shared # 挂载 WebDAV 存储数据,与 WebDAV 服务共享
# 1. 同步数据目录:与 WebDAV 共享的文件存储路径(:shared 允许多容器共享该目录)
- /home/compose/go_webdav/mnt:/mnt/sync/folders/webdav_storage:shared # 挂载 WebDAV 存储数据,与 WebDAV 服务共享
# 2. 配置目录:保存 Resilio 同步设置、密钥、日志等(持久化,避免重启丢失配置)
- ./resilio-config:/mnt/sync # 持久化 Resilio Sync 配置
ports:
- "8888:8888" # Resilio Sync Web UI # Web 管理界面端口映射:主机 8888 → 容器 8888
- "55555:55555" # Resilio Sync 数据传输端口 # P2P 数据传输端口映射:主机 55555 → 容器 55555
#restart: unless-stopped
restart: always # 容器退出后自动重启(开机自启,确保同步不中断)
#environment:
#- PUID=1000 # 可选:设置运行容器的用户ID,确保有文件读写权限
#- PGID=1000 # 可选:设置运行容器的组ID
#- TZ=Asia/Shanghai # 可选:设置容器时区
#VPS版配置
#version: '3'
services:
resilio-sync:
image: resilio/sync # 使用官方 Resilio Sync 镜像
container_name: resilio_sync
volumes:
- ./resilio-config:/mnt/sync # 持久化 Resilio Sync 配置
#- ./webdav_storage:/mnt/sync/folders/webdav_storage:shared # 挂载 WebDAV 存储数据,与 WebDAV 服务共享
- /home/compose/go_webdav/mnt:/mnt/sync/folders/webdav_storage:shared # 挂载 WebDAV 存储数据,与 WebDAV 服务共享
- /home/compose/Suwayomi-Server/downloads:/mnt/sync/folders/suwayomi_downloads:shared
ports:
- "8888:8888" # Resilio Sync Web UI
- "55555:55555" # Resilio Sync 数据传输端口
#restart: unless-stopped
restart: always
deploy: # 在单机模式下使用deploy.resources # 单机模式也支持这种语法
resources:
limits:
#cpus: '0.7'
#memory: 512M
cpus: '0.1'
memory: 356M
privileged: true
#特权:真
关键配置说明:
| 配置项 | 说明与建议 |
|---|---|
image |
指定使用的 Docker 镜像,这里使用官方 resilio/sync 镜像。 |
ports |
8888:8888 用于访问 Web 管理界面。55555:55555 是 Resilio Sync 用于设备间 P2P 数据传输 的端口。请确保该端口在防火墙中开放,这对同步速度很重要。 |
volumes |
./resilio-config:/mnt/sync 用于 持久化存储 Resilio Sync 的配置信息,防止容器重启后配置丢失。/home/compose/go_webdav/mnt:/mnt/sync/folders/webdav_storage:shared 将您需要同步的目录挂载到容器内。 |
environment |
PUID/PGID 建议设置为宿主机上对挂载目录有读写权限的用户和组ID,可通过 id $USER 命令查看。TZ 设置正确的时区,保证日志和时间显示准确。 |
注意:若您使用非 root 用户(PUID/PGID 非 0),请确保该用户对挂载的目录(如
/home/compose/go_webdav/mnt和./resilio-config)拥有读写权限,否则可能因权限问题导致同步失败。
🚀 启动与验证
-
启动服务 在
docker-compose.yml文件所在目录执行:bash docker-compose up -d此命令会拉取镜像并在后台启动容器。 -
检查服务状态
bash docker-compose ps如果看到resilio_sync容器的状态为Up,说明服务已成功启动。 -
查看实时日志(可选) 如果遇到问题,可以通过以下命令查看容器日志来排查:
bash docker-compose logs -f resilio-sync -
访问 Web 界面 打开浏览器,访问
http://你的服务器IP:8888。- 如果一切正常,你将看到 Resilio Sync 的 Web 管理界面。
- 首次访问通常会引导你进行一些基本设置,如创建管理员账号密码。
⚙️ 基础配置与使用
成功登录 Web 界面后,你可以开始配置 Resilio Sync。
-
添加同步文件夹
- 在 Web 界面中,点击 "+" 或 "Add Folder" 按钮。
- 选择 "Standard Folder" (标准文件夹) 或 "Encrypted Folder" (加密文件夹,安全性更高)。
- 在弹出的窗口中,选择容器内已挂载的路径,例如
/mnt/sync/folders/webdav_storage。
-
分享与同步
- 创建文件夹后,Resilio Sync 会提供该文件夹的 密钥 (Key) 或 链接 (Link)。
- 在其他设备上安装 Resilio Sync 客户端后,通过输入此 密钥 或 链接 即可开始同步。
- 对于 公开分享,可选择生成链接;对于需要控制的分享,使用密钥更安全。
-
配置连接选项 (提升同步效率)
- 在文件夹的 "Preferences" (首选项) 或 "Options" (选项) 中:
- "Search LAN" (搜索局域网):建议开启,允许在局域网内发现其他设备,加快同步速度。
- "Use predefined hosts" (使用预定义主机):如果知道其他设备的 IP 地址和端口,可在此添加,例如
IP:55555,有助于建立直接连接。 - "Use tracker server" (使用跟踪服务器):建议开启,有助于查找同步伙伴。
- "Use relay server when required" (需要时使用中继服务器):在没有公网 IP 或无法直接连接时,中继服务器可协助传输,但可能会 影响传输速度。有公网IP或可直连时建议关闭。
- 在文件夹的 "Preferences" (首选项) 或 "Options" (选项) 中:
🔒 维护与管理
-
服务管理:
- 停止服务:
docker-compose down - 重启服务:
docker-compose restart - 查看服务状态:
docker-compose ps
- 停止服务:
-
数据备份:
- 定期备份你的
docker-compose.yml文件。 - 最重要的是备份
resilio-config目录,该目录包含了所有的同步配置和密钥信息。
- 定期备份你的
-
版本更新:
bash # 进入 docker-compose.yml 所在目录 docker-compose down docker-compose pull # 拉取最新镜像 docker-compose up -d # 可选:清理无用镜像 docker image prune
🐛 常见问题排查 (FAQ)
| 问题现象 | 可能原因与解决方法 |
|---|---|
无法访问 Web 界面 (http://IP:8888) |
1. 检查防火墙/安全组是否放行了 8888 端口。 2. 确认容器是否正常运行: docker-compose ps。3. 查看容器日志: docker-compose logs resilio-sync。 |
| 同步速度慢 | 1. 检查端口转发:确保在路由器上转发 55555 端口 (TCP/UDP),这对建立直接连接至关重要。 2. 关闭中继服务器:在文件夹首选项中尝试关闭 "Use relay server",中继服务器通常会降低速度。 3. 添加预定义主机:在已知对方 IP 的情况下,在首选项中添加 "Predefined hosts",例如 对方IP:55555。4. 同步大量小文件时,速度会慢于同步大文件。 |
| 设备间无法同步/找不到对方 | 1. 检查密钥是否正确:确保所有设备输入的是相同的、有效的密钥。 2. 确保端口开放:检查 55555 端口 是否在防火墙和路由器中正确开放。 3. 查看网络环境:某些网络可能屏蔽 P2P 流量。 4. 时间同步:检查设备间系统时间是否相差过大,这可能影响连接。 |
| 文件权限错误 | 1. 检查 volumes 中映射的宿主机目录是否存在且有读写权限。2. 确认 PUID/PGID 设置是否正确,用户是否有权访问挂载的目录。 |
💡 提示:Resilio Sync 有时需要一些时间来发现网络中的其他设备并建立最优连接路径,特别是在初次同步时,请保持耐心。
希望这份教程能帮助你顺利完成 Resilio Sync 的部署,享受高效、去中心化的文件同步体验!
常见问题排查
1. 同步文件夹显示 “无权限访问”
- 原因:同步目录(
/home/compose/go_webdav/mnt)权限不足,Resilio 无法读写文件。 - 解决:执行
sudo chmod -R 777 /home/compose/go_webdav/mnt,赋予最大权限,重启容器后重试。
2. 其他设备无法连接服务器(同步失败)
-
原因 1:数据传输端口(55555)未开放,设备间无法建立 P2P 连接。
解决:检查服务器防火墙和云安全组,确保 55555 端口允许入站和出站。 - 原因 2:服务器 IP 或端口修改后,未更新其他设备的同步配置。
解决:在其他设备上删除旧同步任务,使用新的 IP: 端口 重新添加密钥。
3. Web 界面无法访问(http://IP:8888 打不开)
-
原因 1:8888 端口被占用(如其他服务使用)。
解决:执行
netstat -tuln | grep 8888查看占用程序,或修改配置文件ports为空闲端口(如8889:8888),重启容器。 - 原因 2:容器未正常启动(状态为 Exited)。解决:查看日志(
docker compose logs resilio_sync),修复错误(如目录权限、端口冲突)后重启。
4. 同步速度慢或频繁中断
-
原因 1:设备间网络不稳定(如异地同步、带宽低)。
解决:尽量在同一局域网内同步,或升级网络带宽;在 Web 界面「Settings」→「Speed」中调整速度限制(如取消 “限速”)。 - 原因 2:同步文件过大(如 10GB+ 视频),导致传输超时。
解决:拆分大型文件为小块,或在「Settings」→「Advanced」中增加 “超时时间”。
5. 与 WebDAV 共享目录时文件冲突
- 原因:Resilio 和 WebDAV 同时修改同一文件,导致权限冲突(如一方锁定文件)。
- 解决:确保目录挂载时添加
:shared选项(配置中已包含),避免文件锁定;尽量不同时在两边修改同一文件。
通过以上步骤,新手可快速搭建 Resilio Sync 实现多设备文件同步,并与 WebDAV 联动实现 “同步 + 共享” 一体化。如需更高级的功能(如设置同步黑名单、启用加密传输),可参考 Resilio Sync 官方文档 进一步配置。