首页 > 代码库 > docker 搭建私有云盘 Seafile

docker 搭建私有云盘 Seafile

缘起

现如今各种云存储服务其实挺多的,国外有经典的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
  注意将黄色改为具体的位置
-v
/home/app/seafile:/opt/seafile 表示将运行镜像中的/opt/seafile目录挂载到/home/app/seafile目录。这样就方便我们将下载的Seafile拷贝到运行镜像中。

容器启动后将看到
*** 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的地址。因为我们通过暴露端口访问,所以上传等需要进行相应的更改。

 

docker 搭建私有云盘 Seafile