Docker部署是Syncthing在本地服务器或家庭NAS上长期稳定运行的首选方式,涵盖基础命令式、挂载目录持久化、Docker Compose编排、CasaOS一键及群晖图形化五种主流方法,兼顾隔离性、可复现性与资源可控性。

如果您希望在本地服务器或家庭NAS设备上长期稳定运行Syncthing,Docker部署是兼顾隔离性、可复现性与资源可控性的首选方式。以下是基于主流Linux环境的多种Docker部署方法:
一、基础命令式部署(无持久化配置)
该方式适用于快速验证Syncthing功能,所有配置和数据保存在容器内部,容器删除后数据即丢失。
1、拉取官方Syncthing镜像:docker pull syncthing/syncthing:latest
2、运行容器并映射必要端口:docker run -d --name syncthing -p 8384:8384 -p 22000:22000/tcp -p 22000:22000/udp -p 21027:21027/udp --restart=unless-stopped syncthing/syncthing
3、通过浏览器访问管理界面:http://localhost:8384
二、挂载目录的持久化部署
该方式将配置文件与同步数据目录挂载至宿主机,确保容器重建后配置不丢失、历史版本可恢复。
1、在宿主机创建目录结构:mkdir -p /opt/syncthing/{config,sync}
2、执行带卷挂载的容器启动命令:docker run -d --name syncthing -p 8384:8384 -p 22000:22000/tcp -p 22000:22000/udp -p 21027:21027/udp -v /opt/syncthing/config:/var/syncthing/config -v /opt/syncthing/sync:/var/syncthing/sync --restart=unless-stopped syncthing/syncthing
3、首次访问Web界面时,需手动设置GUI登录账号密码,并启用本地发现(Local Discovery)以提升局域网设备识别效率。
三、Docker Compose编排部署(推荐生产使用)
使用docker-compose.yml统一声明服务依赖、网络策略与挂载关系,便于版本控制与批量管理。
1、新建文件docker-compose.yml,内容如下:
2、写入以下YAML配置(注意缩进与冒号后空格):version: "3.8"\nservices:\n syncthing:\n image: lscr.io/linuxserver/syncthing\n container_name: syncthing\n environment:\n - PUID=1000\n - PGID=1000\n - TZ=Asia/Shanghai\n volumes:\n - ./config:/config\n - ./sync:/sync\n ports:\n - "8384:8384"\n - "22000:22000/tcp"\n - "22000:22000/udp"\n - "21027:21027/udp"\n restart: unless-stopped\n cap_add:\n - SYS_ADMIN\n devices:\n - /dev/fuse:/dev/fuse:rwm
3、在同级目录执行启动:docker-compose up -d
四、CasaOS平台一键部署适配
针对已安装CasaOS的家庭小主机(如ArmV7架构云主机),可通过应用商店或CLI完成适配部署。
1、确认Docker镜像源已配置加速地址,编辑/etc/docker/daemon.json并包含至少一个国内镜像源(如https://docker.mirrors.ustc.edu.cn)
2、重启Docker服务:systemctl restart docker
3、进入CasaOS Web界面 → 应用中心 → 搜索“Syncthing” → 点击安装,安装过程中自动拉取适配Arm架构的镜像并完成端口映射与目录挂载。
五、群晖NAS Docker套件部署
在群晖DSM系统中,通过Docker套件图形界面完成部署,无需命令行操作。
1、打开Docker套件 → 映像 → 点击“注册表”,搜索并下载syncthing/syncthing或lscr.io/linuxserver/syncthing
2、点击“新增”→“容器”→“从映像建立”→ 选择刚下载的镜像 → 在“高级设置”中启用自动重新启动
3、在“卷”设置页,将NAS上预建的共享文件夹(如/volume1/docker/syncthing/config)映射至容器内/var/syncthing/config路径;同步数据目录同理映射至/var/syncthing/sync
4、在“端口设置”中指定宿主机未占用端口(如9529),并映射至容器内8384端口
5、在“环境”设置页添加变量:TZ=Asia/Shanghai,确保Web界面默认显示中文