https://cloud.seafile.com/published/seafile-manual-cn/docker/pro-edition/%E7%94%A8Docker%E9%83%A8%E7%BD%B2Seafile.md

官方教程写的不够详细,特记录一下。

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 容器的备份数据

Text
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

Text
HTML
CSS
Javascript
C
C++
C#
Java
Python
Sql
Swift

备份数据

步骤:

  1. 备份 MySQL 数据库数据;

  2. 备份 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的更多相关文章

  1. CentOS下利用Docker部署Surging

    原文:CentOS下利用Docker部署Surging 1. 安装Centos, 配置固定ip配置文件地址vi /etc/sysconfig/network-scripts/ifcfg-ens33`` ...

  2. CentOS下的Docker离线安装

    Linux下离线安装Docker 一.基础环境 1.操作系统:CentOS 7.3 2.Docker版本:18.06.1 官方下载地址(打不开可能很慢) 3.百度云Docker 18.06.1地址:h ...

  3. centos下的redis一键安装shell脚本

    #!/bin/bash yum install cpp binutils glibc-kernheaders glibc-common glibc-devel gcc make wget #安装依赖库 ...

  4. CentOS 6、7下pptp vpn一键安装脚本

    之前有折腾过<CentOS 6.7下IPSEC/L2TP VPN一键安装脚本>,不稳定.不支持IOS,因此换成pptp,并已经添加到<lnmp一键安装包>.这个脚本可以单独使用 ...

  5. CentOS中利用Docker安装RabbitMQ

    CentOS中利用Docker安装RabbitMQ 1.拉取镜像(带管理平台) #docker pull rabbitmq:3.7.7-management 2.启动容器: #docker run - ...

  6. CentOS中利用Docker安装Redis

    CentOS中利用Docker安装Redis 1.拉取镜像 #docker pull redis:4.0.10 2.加载镜像 #docker run -p 6379:6379 --name test- ...

  7. Ubuntu/CentOS下使用脚本自动安装 Docker

    Ubuntu.Debian 系列安装 Docker 系统要求 Docker 支持以下版本的 Ubuntu 和 Debian 操作系统: Ubuntu Xenial 16.04 (LTS) Ubuntu ...

  8. CentOS 7 中 Docker 的安装

    CentOS 7 中 Docker 的安装 Docker 软件包已经包括在默认的 CentOS-Extras 软件源里.因此想要安装 docker,只需要运行下面的 yum 命令: [root@loc ...

  9. 在CentOS上通过Docker方式安装Redis

    在CentOS上通过Docker方式安装Redis 首先保证已经安装docker. 拖拽redis镜像 docker pull redis 启动redis docker run -p 6379:637 ...

随机推荐

  1. IDEA启动springboot项目找不到application.yml配置文件

    idea启动项目时读取不到application-pro.yml文件,但是配置文件都在resource目录下: 解决:target/classes 目录是IDEA的classpath目录,项目编译后配 ...

  2. vue使用stylus样式预处理器

    vue使用stylus样式预处理器,样式总是报错,需要从上一行的样式回车换行才不会报错 <style lang="stylus" scoped> .navbar mar ...

  3. Argo 项目加入 CNCF 孵化器 | 云原生生态周报 Vol. 45

    作者 | 陈洁.高相林.陈有坤.敖小剑 业界要闻 Argo 项目加入 CNCF 孵化器 Argo 项目是一组 Kubernetes 原生工具,用于运行和管理 Kubernetes 上的作业和应用程序. ...

  4. Mac Chrome浏览器取消自动升级(最新版)

    做自动化突然冒出错误:SessionNotCreatedException: session not created: This version of ChromeDriver only suppor ...

  5. Java——倒序输出Map集合

    package com.java.test.a; import java.util.ArrayList; import java.util.LinkedHashMap; import java.uti ...

  6. 已解决[Authentication failed for token submission,Illegal hexadecimal charcter s at index 1]

    在初次学习使用shiro框架的时候碰到了这个问题,具体报错情况如下: [org.apache.shiro.authc.AbstractAuthenticator] - Authentication f ...

  7. springboot restful接口 如何接受前端的PUT和DELETE请求

    最近项目组有人问我,"springboot怎么接受不到前端提交的PUT和DELETE请求?" 于是有了这篇文章,本篇文章主要解决两个问题: js好像只能提交GET.POST请求耶? ...

  8. 0512String类

    String类 2. String类 2.1 字符串类型概述 又爱又恨!!! 爱: 字符串基本上就是数据的保存,传输,处理非常重要的一种手段. 恨: 解析过程非常烦人,需要掌握熟记很多方法,同时需要有 ...

  9. echarts的时间轴的提示内容写在轴下方

    echarts的时间轴的提示内容写在轴下方 在echarts中横坐标的拖动轴dataZone的提示内容在两端,并且没有相关配置让其显示在轴下方或者其他位置. 解决方式: 在图标下方添加dom并且监听拖 ...

  10. Parrot os更新内核及/boot空间清理

    升级时发现boot,空间满了,卸载以前的内核,清理空间. 如何升级内核请查看我上篇博客:https://www.cnblogs.com/junsec/p/11453049.html 卸载多余内核,清理 ...