Docker部署Syncthing,强大的开源文件同步工具
前言:群晖NAS上部署了Docker后,可以有许多有趣的镜像通过Docker来部署,Docker不仅仅可以提高我们群晖NAS或者支持Docker的NAS的使用率也可以对我们的生活起到帮助和影响。随着信息化的普及,数据保存的重要性变得越来越紧迫因此就迫切需要自己部署一个可以实时同步文件的强大工具,可以把文件同步到自己建立的NAS上,通过各方查找,发现一个开源文件同步项目(syncthing),部署使用后感觉各方面基本和ilovepdf差不多,本文就自己在NAS部署syncthing文件同步服务器遇到的问题和解决方法分享出来供感兴趣的朋友参考,这里需要备注一下自己syncthing文件同步方案是基于群晖NAS,系统版本为7.2,其他NAS系统请酌情参考。这其中如果还不太清楚群晖NAS上Docker如何安装使用请参考下面文章:
一、Syncthing 部署
1、群晖NAS Docker套件Container Manager里面在注册表里搜索“syncthing”,下载这个镜像,大约38MB左右。这个镜像是作者自己发布的Docker镜像,保持了原汁原味。
本次下载syncthing官方自己的docker镜像2、镜像下载好了后,在容器里面新增一个容器,映像选下载好的last版本的镜像,按下面图示配置好相关参数。常规设置处:启用自动重新启动处请打勾,这样避免NAS设置重新启动后,Docker没有启动。
注意勾选启用自动重新启动3、在进行容器设置时,请提前在NAS的共享文件夹docker目录下创建syncthing目录,并在syncthing目录下建立config目录给syncthing容器使用。
提前建立好相应目录供syncthing使用4、接下了的创建syncthing容器的高级设置里,端口设置可以设置一个自己NAS上没有使用并符合系统要求的端口号,这样访问是NAS地址跟这个端口号时就可以正确访问。这里设置端口号为9529,存储空间设置这里只需要把前面建立好的文件夹syncthing和config映射给/syncthing和/config即可。
端口设置根据自己NAS情况酌情考虑使用高级设置部分:端口设置和存储空间设置高级设置部分:端口设置和存储空间设置高级设置部分:端口设置和存储空间设置高级设置部分:端口设置和存储空间设置
5、网络设置默认选则桥接,除非你想syncthing容器自己有独立地址,那么你可以设置网络类型为host。
网络类型选bridge6、环境变量处需要修改如图示信息,为了默认中文设置,请在环境变量里增加TZ=Asia/Shanghai参数,这样初始页面就会为中文页面,这里注意环境参数默认STGUIADDRESS中端口为8384,为了对映前面端口映射请自行修改为9529,HOME参数和STHOMEDIR根据前面存储空间映射关系设置,设置好了后,在确认前可以看看设置摘要,对比各个设置参数,确认没啥问题点击完成即可。
根据需求设置相关参数
docker配置完摘要二、syncthing使用
1、浏览器打开http://nas ip 地址:9529 会弹出窗口问是否允许匿名使用报告,这个根据自己情况选则。因为前面环境变量已经设置TZ=Asia/Shanghai,因此初始浏览自适应为中文页面。
初始页面2、syncthing的界面非常简单,第一次要求你设置一个GUI页面登陆用户名和密码,这个自己根据情况设置,因自己是在家使用也没有映射端口到外网,因此也就没有设置这个用户名和密码。当然如果你有需要远程使用,建议你设置密码。可以看到syncthing界面里出现1、 文件夹 2、当前设备 这2个主要界面信息,后续的文件数据备份都是在这2个项目里进行设置和处理。
初始使用界面非常简单可以点设置,在图形用户界面里设置用户名和密码。
GUI界面用户名和密码设置3、为了使用syncthing进行文件同步,需要到syncthing官网下载对应系统环境软件进行备份设置,这里拿win系统下软件举例说明,其他系统请参考官方文件,syncthing支持的系统非常多,也支持安卓手机系统,对IOS支持需要用第三方软件,比较遗憾的是因为IOS的后台限制,syncthing对IOS支持不是很得力。如果使用IOS还是建议选则别的文件同步方案。
支持的系统比较多4、下载好WIN版本的syncthing软件,可以下载无需安装的版本,解压缩后就可以使用,该软件打开后自动打开浏览器,127.0.0.1:8384 页面出现和NAS上部署的一样的界面,唯一不同的是当前设备处名字是自己win系统电脑名字。
win系统上打开syncthing软件和NAS上部署的一样打开一个GUI页面5、NAS上部署的syncthing要和win上部署的syncthing进行文件数据同步,需要按以下步骤设置,这里示例如下:
1、首先需要确认win系统主机(win上安装了syncthing软件,并运行)会生成唯一的识别ID信息,在操作里可以显示ID
ID是唯一标识
设备唯一的标识,包括二维码标识方便使用2、通过1确认的设备ID标识,然后到NAS上部署的syncthing界面里添加设备。这样就把需要进行同步的设备添加到NAS上部署的syncthing里,同样在win系统上运行的syncthing上也添加NAS上部署的syncthing。
根据部署了syncthing的设备唯一ID添加设备NAS的syncthing里添加好WIN系统上的syncthing设备后,会自动在WIN的syncthing发现NAS的syncthing设备,并添加为远程设备。
自动发现syncthing设备
添加NAS上部署的syncthing设备
win系统上部署的syncthing上显示了远程NAS上部署的 syncthing设备3、2边都互相添加好设备后,就可以自己根据需求建立需要备份的文件夹,并开始同步文件夹中的文件。这里我们在win系统的I:盘上建立个test文件夹,test文件夹里面放了一个10多GB的GHO文件,用来测试,只需要在NAS的syncthing和win系统的syncthing里面建立这个test文件夹,并共享给对方就可以进行数据同步。
NAS上部署的syncthing建立需要同步的文件夹test
NAS上部署的syncthing添加文件夹,共享WIN系统上的syncthing设备
win系统里syncthing设置添加文件夹,
win系统里syncthing里共享选则NAS上的syncthing设备4、上述设置完成后,就开始数据同步,可以观察到数据同步信息
数据同步信息
同步完成后,文件夹内文件信息对比三、总结
总体来说,syncthing 文件同步部署简单,使用也简单明了,保密性和私密性都很强,另外部署到自家NAS上远程访问也需要自己NAS具备DDNS或者其他开启远程访问NAS的功能,相对来说有一定难度,但瑕不掩瑜,毕竟部署一款自己可以掌控文件同步工具很有成就感,文件存放在自己的服务器上相对安全性也要高很多。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~

吴顶天
--name=syncthing \
--hostname=j4125-ubuntu-syncthing `#optional` \
--restart unless-stopped \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Shanghai \
-p 60828:8384 \
-p 22000:22000/tcp \
-p 22000:22000/udp \
-p 21027:21027/udp \
-v /mnt/sda/syncthing:/var/syncthing \
syncthing/syncthing
我目前用的这个脚本,只能这样执行才能跑通,我想把配置文件和同步目录分开,想把配置文件映射到SSD,同步目录映射到机械盘,但是一分开就同步报错。能发下你的docker syncthing脚本吗
校验提示文案
吴顶天
--name=syncthing \
--hostname=j4125-ubuntu-syncthing `#optional` \
--restart unless-stopped \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Shanghai \
-p 60828:8384 \
-p 22000:22000/tcp \
-p 22000:22000/udp \
-p 21027:21027/udp \
-v /mnt/sda/syncthing:/var/syncthing \
syncthing/syncthing
我目前用的这个脚本,只能这样执行才能跑通,我想把配置文件和同步目录分开,想把配置文件映射到SSD,同步目录映射到机械盘,但是一分开就同步报错。能发下你的docker syncthing脚本吗
校验提示文案
光明六翼
校验提示文案
CoKe可乐
校验提示文案
克莱登校董
校验提示文案
XFlower
校验提示文案
依然溺水
校验提示文案
精蓝
校验提示文案
笑天蛋
校验提示文案
ttxdt
校验提示文案
芒果胖胖
校验提示文案
蘑菇烩饭
校验提示文案
蘑菇烩饭
校验提示文案
吴顶天
--name=syncthing \
--hostname=j4125-ubuntu-syncthing `#optional` \
--restart unless-stopped \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Shanghai \
-p 60828:8384 \
-p 22000:22000/tcp \
-p 22000:22000/udp \
-p 21027:21027/udp \
-v /mnt/sda/syncthing:/var/syncthing \
syncthing/syncthing
我目前用的这个脚本,只能这样执行才能跑通,我想把配置文件和同步目录分开,想把配置文件映射到SSD,同步目录映射到机械盘,但是一分开就同步报错。能发下你的docker syncthing脚本吗
校验提示文案
吴顶天
--name=syncthing \
--hostname=j4125-ubuntu-syncthing `#optional` \
--restart unless-stopped \
-e PUID=1000 \
-e PGID=1000 \
-e TZ=Asia/Shanghai \
-p 60828:8384 \
-p 22000:22000/tcp \
-p 22000:22000/udp \
-p 21027:21027/udp \
-v /mnt/sda/syncthing:/var/syncthing \
syncthing/syncthing
我目前用的这个脚本,只能这样执行才能跑通,我想把配置文件和同步目录分开,想把配置文件映射到SSD,同步目录映射到机械盘,但是一分开就同步报错。能发下你的docker syncthing脚本吗
校验提示文案
芒果胖胖
校验提示文案
ttxdt
校验提示文案
笑天蛋
校验提示文案
精蓝
校验提示文案
依然溺水
校验提示文案
XFlower
校验提示文案
克莱登校董
校验提示文案
CoKe可乐
校验提示文案
光明六翼
校验提示文案