docker安装Seafile、Onlyoffice
环境:CentOS 7.6 Docker18.06.3-ce已安装
安装docker-compose
1
2curl -L https://github.com/docker/compose/releases/download/1.23.0-rc3/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose创建需要的目录
1
2
3mkdir -p /seafile/data
mkdir -p /seafile/db
mkdir -p /seafile/db/db-backup
安装Seafile 6.3.4
创建docker-compose.yml文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38cd /seafile
vi docker-compose.yml
---输入以下内容---
version: '2.0'
services:
memcached:
image: memcached:1.5.6
container_name: seafile-memcached
restart: always
entrypoint: memcached -m 256
networks:
- seafile-net
seafile:
image: seafileltd/seafile:latest
container_name: seafile
restart: always
ports:
- "80:80"
# - "443:443" # If https is enabled, cancel the comment.
volumes:
- /seafile/data:/shared # Requested, specifies the path to Seafile data persistent store.
environment:
- DB_HOST=db
- DB_ROOT_PASSWD=boqii399 # 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=johnny@boqii.com # Specifies Seafile admin user, default is 'me@example.com'.
- SEAFILE_ADMIN_PASSWORD=boqii399 # Specifies Seafile admin password, default is 'asecret'.
- SEAFILE_SERVER_LETSENCRYPT=false # Whether to use https or not.
- SEAFILE_SERVER_HOSTNAME=172.16.54.254 # Specifies your host name if https is enabled.
depends_on:
- memcached
networks:
- seafile-net
networks:
seafile-net:
------------------安装Seafile
1
docker-compose -f docker-compose.yml up -d
安装Seafile7系列版本
创建docker-compose.yml文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51cd /seafile
vi docker-compose.yml
--- 输入以下内容---
version: '2.0'
services:
db:
image: mariadb:10.1
container_name: seafile-mysql
restart: always
environment:
- MYSQL_ROOT_PASSWORD=boqii399 # Requested, set the root's password of MySQL service.
- MYSQL_LOG_CONSOLE=true
volumes:
- /seafile/db:/var/lib/mysql # Requested, specifies the path to MySQL data persistent store.
networks:
- seafile-net
memcached:
image: memcached:1.5.6
container_name: seafile-memcached
restart: always
entrypoint: memcached -m 256
networks:
- seafile-net
seafile:
image: seafileltd/seafile-mc:latest
container_name: seafile
restart: always
ports:
- "80:80"
# - "443:443" # If https is enabled, cancel the comment.
volumes:
- /seafile/data:/shared # Requested, specifies the path to Seafile data persistent store.
environment:
- DB_HOST=db
- DB_ROOT_PASSWD=boqii399 # 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=johnny@boqii.com # Specifies Seafile admin user, default is 'me@example.com'.
- SEAFILE_ADMIN_PASSWORD=boqii399 # Specifies Seafile admin password, default is 'asecret'.
- SEAFILE_SERVER_LETSENCRYPT=false # Whether to use https or not.
- SEAFILE_SERVER_HOSTNAME=172.16.54.254 # Specifies your host name if https is enabled.
depends_on:
- db
- memcached
networks:
- seafile-net
networks:
seafile-net:
--------------------------安装Seafile
1
docker-compose -f docker-compose.yml up -d
安装onlyoffice
创建需要的目录
1
mkdir /data/onlyoffice
创建docker-compose.yaml文件
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35cd /data/onlyoffice
vi docker-compose.yml
--- 输入以下内容---
version: '2.0'
services:
onlyoffice-documentserver:
container_name: onlyoffice
restart: always
image: onlyoffice/documentserver:latest
# environment:
# - AMQP_SERVER_URL=amqp://guest:guest@onlyoffice-activemq
# - AMQP_SERVER_TYPE=activemq
# stdin_open: true
ports:
- '8001:80'
# - '443:443'
# networks:
# - onlyoffice
# onlyoffice-activemq:
# container_name: onlyoffice-activemq
# image: webcenter/activemq:5.14.3
# environment:
# - ACTIVEMQ_USERS_guest=guest
# - ACTIVEMQ_GROUPS_owners=guest
# restart: always
# networks:
# - onlyoffice
# expose:
# - '5672'
networks:
onlyoffice:
# driver: 'bridge'
--------------------------安装onlyoffice
docker-compose -f docker-compose.yml up -d启动容器
docker start <容器名>开机自启动容器
docker update --restart=always <容器名>seafile系统配置

备份seafile数据
Seafile 6.3.4
数据库备份
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17cd /seafile/db/db-backup
docker exec -ti seafile mysqldump -uroot --opt ccnet_db > ccnet_db.sql.$(date +"%F")
docker exec -ti seafile mysqldump -uroot --opt seafile_db > seafile_db.sql.$(date +"%F")
docker exec -ti seafile mysqldump -uroot --opt seahub_db > seahub_db.sql.$(date +"%F")
--- 脚本---
#!/bin/bash
cd /seafile/db/db-backup
for i in ccnet_db seafile_db seahub_db
do
docker exec -ti seafile mysqldump -uroot --opt $i > $i.sql.$(date +"%F")
done
# 清理30天前
find . -name "*sql*" -mtime +30 -delete
------------数据备份
rsync -avh --progress /seafile 目标目录(备份目录)数据恢复
- 数据库恢复
1
2
3
4
5cd /seafile/db/db-backup
docker exec -ti seafile bash
mysql ccnet_db < ccnet_db.sql.日期
mysql seafile_db < seafile_db.sql.日期
mysql seahub_db < seahub_db.sql.日期
- 数据库恢复
数据文件恢复
rsync -avh --progress 备份目录 /seafile
Seafile 7版本系列
数据库备份
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17cd /seafile/db/db-backup
docker exec -ti seafile-mysql mysqldump -uroot -pboqii399 --opt ccnet_db > ccnet_db.sql.$(date +"%F")
docker exec -ti seafile-mysql mysqldump -uroot -pboqii399 --opt seafile_db > seafile_db.sql.$(date +"%F")
docker exec -ti seafile-mysql mysqldump -uroot -pboqii399 --opt seahub_db > seahub_db.sql.$(date +"%F")
--- 脚本---
#!/bin/bash
cd /seafile/db/db-backup
for i in ccnet_db seafile_db seahub_db
do
docker exec -ti seafile-mysql mysqldump -uroot --opt $i > $i.sql.$(date +"%F")
done
# 清理30天前
find . -name "*sql*" -mtime +30 -delete
------------数据备份
rsync -avh --progress /seafile 目标目录(备份目录)数据恢复
数据库恢复
1
2
3
4
5
6#方法1:
docker exec -ti seafile-mysql /bin/sh -c " mysql -uroot -pboqii399 ccnet_db < /var/lib/mysql/db-back/ccnet_db.sql.2019-07-25"
#方法2:
docker exec -ti seafile-mysql bash
mysql -uroot -pboqii399 seafile_db < /var/lib/mysql/db-back/seafile_db.sql.2019-07-25
mysql -uroot -pboqii399 seahub_db < /var/lib/mysql/db-back/seahub_db.sql.2019-07-25数据文件恢复
rsync -avh --progress 备份目录 /seafile