代码改变世界

使用docker搭建seafile服务器

2020-11-14 21:57  AlfredZhao  阅读(4950)  评论(0编辑  收藏  举报

工作需要在单位和家里的不同电脑上同步指定文件夹及其内容。对比了一些解决方案,最终还是选择熟悉的seafile来做。
需要按照官方文档进行seafile的安装,选择官方推荐的docker方式快速部署。
由于网络因素,直接访问国外源非常慢甚至超时退出无法完成,所以我下面尝试替换成国内阿里云的源,实际体验速度提升非常明显。

1.使用yum安装依赖包

yum install -y yum-utils \
device-mapper-persistent-data \
lvm2 

2.添加yum软件源后安装Docker

yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo 
yum install docker-ce docker-ce-cli containerd.io 
#启动docker
systemctl start docker

3.配置Docker国内镜像加速

vi /etc/docker/daemon.json

镜像加速器地址: https://cr.console.aliyun.com/cn-hangzhou/instances/mirrors
打开以后你可以看见你的专属加速器地址xxxxxxxx.mirror.aliyuncs.com
将其配置到daemon.json文件中:

{ "registry-mirrors": ["https://xxxxxxxx.mirror.aliyuncs.com"] }

需重启docker服务:

systemctl daemon-reload 
systemctl restart docker

4.使用docker pull拉取seafile镜像

[root@alfredzhao-ecs01 ~]# docker pull seafileltd/seafile
Using default tag: latest
latest: Pulling from seafileltd/seafile
1489501ea318: Pull complete 
c197ac8352c5: Pull complete 
Digest: sha256:f0d42312c8935973515213677619b3fed877c7276949ac18e01804565a21ba7e
Status: Downloaded newer image for seafileltd/seafile:latest
docker.io/seafileltd/seafile:latest

注意:这里如果没有上一步配置合理的registry-mirrors,速度就会非常慢。

5.使用docker run运行seafile服务

docker run -d --name seafile \
  -e SEAFILE_SERVER_HOSTNAME=seafile.example.com \
  -e SEAFILE_ADMIN_EMAIL=me@example.com \
  -e SEAFILE_ADMIN_PASSWORD=your_password \
  -v /opt/seafile-data:/shared \
  -p 8000:8000 \
  -p 8082:8082 \
  seafileltd/seafile:latest 

注意:这里端口的映射,早期文档给的是一个端口,而我们需要配置两个端口。服务器域名/邮箱/密码都按照真实情况设置即可。

6.开启防火墙策略/安全组策略

基本同上,根据实际需要修改创建seafile的参数即可,服务器域名可以去注册一个,如果没有,直接使用服务器的公网ip地址也可以。另外要检查服务器的防火墙设置是否打开了对应端口。
firewall-cmd --zone=public --add-port=8000/tcp --permanent 
firewall-cmd --zone=public --add-port=8082/tcp --permanent 

firewall-cmd --reload 

注意:如果是ECS环境,要同时放开安全组策略对应端口的限制。

总结:最终我测试seafile在不同电脑之间同步指定文件夹,效果可以完全cover自己同步的需求。另外最大的感受是还没有太多的了解细节,就部署完成上线使用了,这主要得益于docker的优势。