缘起
现如今各种云存储服务其实挺多的,国外有经典的DropBox、Google Drive、微软的OneDrive等,国内也有可以免费使用的各种云。
那么为什么想要搭建私有云存储呢?主要是本着“自己的数据自己管理”的原则。
其一是防止数据被窃取。这些云存储服务往往是和自己的某些平台账号绑定在一起的,或者至少是跟自己的某个邮箱绑定在一起的(密码重设),一旦平台账号或邮箱被黑客获取,所有的数据就一览无余了。再加之网络上社工库泛滥,很多人喜欢在各种网络服务上使用相同 的密码,往往是某一个账号失窃,所有数据全部暴露。
其二是防止数据被主动泄漏。Google退出中国事件之后,我们知道运营在国内的产品数据都是对政府公开的,你一定不想把私密照片传到百度云或是360云盘上去。而“棱镜门”之后,我们知道诸如Google等号称“不作恶”的企业,其数据也是对政府公开的,老大哥时刻盯着你……
其三是防止数据遗失。有些人贪图更便宜的价格或是更大的空间选择不知名的云存储服务,说不定哪天就停止服务了,到时候悔之晚矣。另外貌似诸如百度云如果判定你的视频文件有色情内容,会主动将其清除掉。
这么一看自己搭建私有云存储太有必要性了。至少能保证自己的私人数据与其他互联网账号无关,不被搜索引擎索引,不被政府监视。保证服务器运行并做好数据备份就不会丢失。如果仅在家庭或公司内部使用可以部署在内网,安全系数更高。
Docker和Seafile介绍
Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似iPhone的 app)。几乎没有性能开销,可以很容易地在机器和数据中心中运行。最重要的是,他们不依赖于任何语言、框架或包装系统。
摘自开源中国
Docker能简化我们的云存储搭建过程,还能使其更安全地运行,更方便的维护。
Seafile是新一代的开源云存储软件。它提供更丰富的文件同步和管理功能,以及更好的数据隐私保护和群组协作功能。Seafile支持 Mac、Linux、Windows三个桌面平台,支持Android和iOS 两个移动平台。
Seafile是由国内团队开发的国际型项目,目前已有10万左右的用户,以欧洲用户为多。典型的机构用户包括比利时的皇家自然科学博物馆,德国的Wuppertal气候、能源研究所。
摘自开源中国
下面讲述在rancher管理平台搭建Seafile
一、拉取jenserat/seafile 镜像
docker pull jenserat/seafile:latest
二、下载Seafile
jenserat/seafile
镜像中包含了下载Seafile的脚本,可惜其文件托管在Amazon ECS上,国内无法正常访问。
所以我们需要从官方网站上手动下载
本例中我们把Seafile存放在/home/app/seafile
三、运行镜像并挂载本地目录
docker run -t -i --rm -p 10001:10001 -p 12001:12001 -p 8000:8000 -p 8080:8080 -p 8082:8082 -v /home/app/seafile:/opt/seafile jenserat/seafile -- /bin/bash
注意将黄色改为具体的位置
/home/app/seafile:/opt/seafile 表示将运行镜像中的/opt/seafile目录挂载到/home/app/seafile目录。这样就方便我们将下载的Seafile拷贝到运行镜像中。
-v
容器启动后将看到
*** Running /etc/my_init.d/00_regen_ssh_host_keys.sh... *** Running /etc/rc.local... *** Booting runit daemon... *** Runit started as PID 9 *** Running /bin/bash... root@635064a090b9:/# May 10 08:37:40 635064a090b9 syslog-ng[20]: syslog-ng starting up; version='3.5.3'
四、配置
- 定位到/opt/seafile 目录
- 解压下载的seafile
tar -zxf seafile-server_6.0.9_x86-64.tar.gz
- 进入解压的目录
check_init_admin.py seaf-fuse.sh seahub setup-seafile.sh reset-admin.sh seaf-gc.sh seahub.sh upgrade runtime seafile setup-seafile-mysql.py seaf-fsck.sh seafile.sh setup-seafile-mysql.sh
- 运行配置:
./setup-seafile.sh
将会出现配置 域名,端口号等等,按照提示一步步确认来。
- 运行seafile,seahub
./seafile.sh start
./seahub.sh start
配置完成后启动Seafile的两个服务测试,seafile是文件管理引擎,seahub提供网页访问服务。seahub首次启动时会要求提供管理员邮箱及密码:
五、后续工作
至此基本上一配置完成。但在web页面上传中一直遇到上传失败。其解决方法需要在页面的系统设置中
将IP地址改变为rancher的地址。因为我们通过暴露端口访问,所以上传等需要进行相应的更改。