在CentOS下利用Docker一键安装seafile
官方教程写的不够详细,特记录一下。
1. 安装docker及docker-compose
具体见本博客相关文章。
2.下载并修改一键安装脚本
https://docs.seafile.com/d/cb1d3f97106847abbf31/files/?p=/docker/pro-edition/docker-compose.yml
version: '2.0'
services:
db:
image: mariadb:10.1
container_name: seafile-mysql
environment:
- MYSQL_ROOT_PASSWORD=db_dev # MySQL root 用户的密码 Requested, set the root's password of MySQL service.
- MYSQL_LOG_CONSOLE=true
volumes:
- /opt/seafile-mysql/db:/var/lib/mysql # 持久化存储 MySQL 数据的 volumes 目录 Requested, specifies the path to MySQL data persistent store.
networks:
- seafile-net memcached:
image: memcached:1.5.
container_name: seafile-memcached
entrypoint: memcached -m
networks:
- seafile-net elasticsearch:
image: seafileltd/elasticsearch-with-ik:5.6.
container_name: seafile-elasticsearch
environment:
- discovery.type=single-node
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms1g -Xmx1g"
ulimits:
memlock:
soft: -
hard: -
mem_limit: 2g
volumes:
- /opt/seafile-elasticsearch/data:/usr/share/elasticsearch/data # 持久化存储 Elasticsearch 索引数据的 volumes 目录Requested, specifies the path to Elasticsearch data persistent store.
networks:
- seafile-net seafile:
image: docker.seafile.top/seafileltd/seafile-pro-mc:latest
container_name: seafile
ports:
- "80:80"
# - "443:443" # If https is enabled, cancel the comment.
volumes:
- /opt/seafile-data:/shared # 持久化存储 Seafile 数据的 volumes 目录 Requested, specifies the path to Seafile data persistent store.
environment:
- DB_HOST=db
- DB_ROOT_PASSWD=db_dev # Requested, the value shuold be root's password of MySQL service.
# - TIME_ZONE=Asia/Shanghai # Optional, default is UTC. Should be uncomment and set to your local time zone.
- SEAFILE_ADMIN_EMAIL=me@example.com # 管理员账号Specifies Seafile admin user, default is 'me@example.com'
- SEAFILE_ADMIN_PASSWORD=asecret # Specifies Seafile admin password, default is 'asecret'
- SEAFILE_SERVER_LETSENCRYPT=false # Whether to use https or not
- SEAFILE_SERVER_HOSTNAME=example.seafile.com # Specifies your host name if https is enabled
depends_on:
- db
- memcached
- elasticsearch
networks:
- seafile-net networks:
seafile-net:
根据您的实际环境修改该文件。尤其是以下几项配置:
MySQL root 用户的密码 (MYSQL_ROOT_PASSWORD and DB_ROOT_PASSWD)
持久化存储 MySQL 数据的 volumes 目录 (volumes)
持久化存储 Seafile 数据的 volumes 目录 (volumes)
持久化存储 Elasticsearch 索引数据的 volumes 目录 (volumes)
3. 如果按照专业版的话
注册帐号,打开seafile的英文网页,去下载区,有如下信息
You can download pro editions from https://download.seafile.com/d/×××××××××/?p=/pro.
If you are deploying Seafile Pro with Docker, type docker login docker.seadrive.org
, then input username seafile
, password zj×××××dZ=u×××uWS
.
必须有此帐号登录过程,不然第4步执行过程中会被拒绝。
4. 安装
在 docker-compose.yml
文件所在的目下执行以下命令启动 Seafile 服务
docker-compose up -d
根据网速不同,需要等待些许时间,等容器首次启动时的初始化操作完成后,您就可以在浏览器上访问http://seafile.example.com
来打开 Seafile 主页。
Seafile 目录结构
/shared
共享卷的挂载点,您可以选择在容器外部存储某些持久性信息.在这个项目中,我们会在外部保存各种日志文件和上传数据。 这使您可以轻松重建容器而不会丢失重要信息。
/shared/seafile: Seafile 服务的配置文件,日志文件以及数据文件
/shared/seafile/logs: Seafile 服务运行产生的日志文件目录。比如您可以在
/shared/seafile/logs/seafile.log
文件中看到 seaf-server 的日志/shared/seafile/seafile-data: 如果您没有配置S3或者OSS等对象存储,那么用户上传的数据将会存放到该目录下。
/shared/logs: 日志目录
/shared/logs/var-log: 我们将容器内的
/var/log
链接到本目录。您可以在/shared/logs/var-log/nginx/
中找到 nginx 的日志文件
/shared/ssl: 存放证书的目录,默认不存在
备份和恢复
目录结构
我们假设您的 seafile 数据卷路径是 /opt/seafile-data
,并且您想将备份数据存放到 /opt/seafile-backup
目录下。
您可以创建一个类似以下 /opt/seafile-backup
的目录结构:
/opt/seafile-backup
---- databases/ 用来存放 MySQL 容器的备份数据
---- data/ 用来存放 Seafile 容器的备份数据
HTML
CSS
Javascript
C
C++
C#
Java
Python
Sql
Swift
要备份的数据文件:
/opt/seafile-data/seafile/conf # configuration files
/opt/seafile-data/seafile/seafile-data # data of seafile
/opt/seafile-data/seafile/seahub-data # data of seahub
HTML
CSS
Javascript
C
C++
C#
Java
Python
Sql
Swift
备份数据
步骤:
备份 MySQL 数据库数据;
备份 Seafile 数据目录;
备份数据库:
# 建议每次将数据库备份到一个单独的文件中。至少在一周内不要覆盖旧的数据库备份。
cd /opt/seafile-backup/databases
docker exec -it seafile-mysql mysqldump -uroot --opt ccnet_db > ccnet_db.sql
docker exec -it seafile-mysql mysqldump -uroot --opt seafile_db > seafile_db.sql
docker exec -it seafile-mysql mysqldump -uroot --opt seahub_db > seahub_db.sql
Text
HTML
CSS
Javascript
C
C++
C#
Java
Python
Sql
Swift备份 Seafile 资料库数据:
直接复制整个数据目录
cp -R /opt/seafile-data/seafile /opt/seafile-backup/data/
cd /opt/seafile-backup/data && rm -rf ccnet
Text
HTML
CSS
Javascript
C
C++
C#
Java
Python
Sql
Swift使用 rsync 执行增量备份
rsync -az /opt/seafile-data/seafile /opt/seafile-backup/data/
cd /opt/seafile-backup/data && rm -rf ccnet
Text
HTML
CSS
Javascript
C
C++
C#
Java
Python
Sql
Swift
恢复数据
恢复数据库:
docker cp /opt/seafile-backup/databases/ccnet_db.sql seafile-mysql:/tmp/ccnet_db.sql
docker cp /opt/seafile-backup/databases/seafile_db.sql seafile-mysql:/tmp/seafile_db.sql
docker cp /opt/seafile-backup/databases/seahub_db.sql seafile-mysql:/tmp/seahub_db.sql
docker exec -it seafile-mysql /bin/sh -c "mysql -uroot ccnet_db < /tmp/ccnet_db.sql"
docker exec -it seafile-mysql /bin/sh -c "mysql -uroot seafile_db < /tmp/seafile_db.sql"
docker exec -it seafile-mysql /bin/sh -c "mysql -uroot seahub_db < /tmp/seahub_db.sql"
Text
HTML
CSS
Javascript
C
C++
C#
Java
Python
Sql
Swift恢复 seafile 数据:
cp -R /opt/seafile-backup/data/* /opt/seafile-data/seafile/
在CentOS下利用Docker一键安装seafile的更多相关文章
- CentOS下利用Docker部署Surging
原文:CentOS下利用Docker部署Surging 1. 安装Centos, 配置固定ip配置文件地址vi /etc/sysconfig/network-scripts/ifcfg-ens33`` ...
- CentOS下的Docker离线安装
Linux下离线安装Docker 一.基础环境 1.操作系统:CentOS 7.3 2.Docker版本:18.06.1 官方下载地址(打不开可能很慢) 3.百度云Docker 18.06.1地址:h ...
- centos下的redis一键安装shell脚本
#!/bin/bash yum install cpp binutils glibc-kernheaders glibc-common glibc-devel gcc make wget #安装依赖库 ...
- CentOS 6、7下pptp vpn一键安装脚本
之前有折腾过<CentOS 6.7下IPSEC/L2TP VPN一键安装脚本>,不稳定.不支持IOS,因此换成pptp,并已经添加到<lnmp一键安装包>.这个脚本可以单独使用 ...
- CentOS中利用Docker安装RabbitMQ
CentOS中利用Docker安装RabbitMQ 1.拉取镜像(带管理平台) #docker pull rabbitmq:3.7.7-management 2.启动容器: #docker run - ...
- CentOS中利用Docker安装Redis
CentOS中利用Docker安装Redis 1.拉取镜像 #docker pull redis:4.0.10 2.加载镜像 #docker run -p 6379:6379 --name test- ...
- Ubuntu/CentOS下使用脚本自动安装 Docker
Ubuntu.Debian 系列安装 Docker 系统要求 Docker 支持以下版本的 Ubuntu 和 Debian 操作系统: Ubuntu Xenial 16.04 (LTS) Ubuntu ...
- CentOS 7 中 Docker 的安装
CentOS 7 中 Docker 的安装 Docker 软件包已经包括在默认的 CentOS-Extras 软件源里.因此想要安装 docker,只需要运行下面的 yum 命令: [root@loc ...
- 在CentOS上通过Docker方式安装Redis
在CentOS上通过Docker方式安装Redis 首先保证已经安装docker. 拖拽redis镜像 docker pull redis 启动redis docker run -p 6379:637 ...
随机推荐
- MySQL(2)— 数据库的基本操作
二.数据库 2-1.操作数据库(了解) 1.创建数据库 CREATE DATABASE [IF NOT EXIST] myDatabase; 2.删除数据库 DROP DATABASE `myData ...
- F. Dominant Indices
题意:求每个点的子树中哪一层节点数最多,如果有节点数最多不唯一,取层数最小的. 题解:dus on tree 基本想法是对每一个节点都构建一个deep数组,然后从底向上更新过来,但是这样空间复杂度和时 ...
- CF838A
题目链接:http://codeforces.com/contest/838/problem/A 知识点: (void) 题目大意: 给一个 \(n \times m\) 的 01 矩阵,对于矩阵在 ...
- .Net基础之2——C#基础
1.注释符的作用 1).注销 2).解释 2.C#中的3种解释符 1).单行注释(//要注释的内容) //这行代码的作用是将hello world输出到控制台上 ...
- 学习ASP.NET Core(08)-过滤搜索与分页排序
上一篇我们介绍了AOP的基本概览,并使用动态代理的方式添加了服务日志:本章我们将介绍过滤与搜索.分页与排序并添加对应的功能 注:本章内容大多是基于solenovex的使用 ASP.NET Core 3 ...
- VUE添加class绑定
class class的样式应用四种 1.数组用法 显示用标识符v-bind :class="['red','thin']" 2. ...
- go模板-代码生成器
能用程序去做的事,就不要用手,编写自己的代码生成器就是用来解放你的双手,替你做一些重复性的工作. 上篇帖子写了模板的基础 go模板详说 ,有了基础就要做点什么东西,把所学到的东西应用起来才能更好的进步 ...
- Ant标签详解--基础操作
Ant的一些核心概念: build.xml:构建文件是以XML 文件来描述的,默认构建文件名为build.xml. project:每个构建文件包含一个工程. property:属性,一 ...
- Vim的三款实用插件
Vim 是 Linux 下的常用文本编辑器,但也经常被称为是一个上古神器,因为它对于初学者而言相当不友好,也不好入门. 但是,对于高手而言,他们不仅将 Vim 玩得很溜,而且还将它当作代码开发的主要工 ...
- (Java实现) 装载问题
2.装载问题 [问题描述] 有一批共n个集装箱要装上艘载重量为c的轮船,其中集装箱i的重量为wi.找出一种最优装载方案,将轮船尽可能装满,即在装载体积不受限制的情况下,将尽可能重的集装箱装上轮船. [ ...