Have fun with sci.dog

入坑docker,采用docker compose部署seafile

最近入坑了docker,发现这东西果然方便。

这里有一个docker的基础教程,我觉得不错,先贴出来。

docker – 纯洁的微笑博客 (ityouknow.com)

谈谈我对docker的简单理解,我们可以把docker理解为一个虚拟机软件,而不同的docker镜像里包含了“操作系统+应用+配置”,docker镜像就是一个配置好的,可以直接运行特定应用的环境。以往,我们要部署一个应用,要按照不同的操作系统,先安装这个应用的基础组件,然后下载应用,再改应用的配置文件,最后启动应用,非常费劲,经常会因为操作系统的不同、组件版本的不同、甚至莫名其妙的原因失败。有了docker,这一切都不需要自己操心了,docker应用镜像已经是一个测试过的,配置好的环境,我们只需要把它拿过来直接run就行。

一、docker的安装

这个和其他软件一样,不同的操作系统有不同的方式,大家自行搜索即可,要注意的是,安装后最好把docker添加到开机启动,这样基于docker的应用在开机后也都能启动了。

对于用户来说,知道docker的映射方法就可以。基本上就是

x:y

的这种格式,啥意思呢?就是把主机的x位置或者端口映射到虚拟机(容器)的y位置或者端口,也就是说访问宿主的x端口,相当于访问虚拟机(容器)的y端口,虚拟机(容器)访问y位置,相当于访问宿主的x位置。

二、docker compose

compose可以通过配置文件,直接加载docker镜像,一次性能加载多个docker镜像,更为方便。

compose的安装也有许多方法,我采用的是直接下载编译好的包的方法:

1、确定系统、内核、cpu

uname -a
uname -s
uname -m

2、下载compose

docker/compose: Define and run multi-container applications with Docker (github.com)

去release里下载

3、改名,下载的文件名字改为docker-compose

4、移动位置,放在合适的位置

我这里是放到了/usr/libexec/docker/cli-plugin

5、赋予执行权限,用chmod+x

6、compose的简单使用

compose是根据docker-compose.yml文件来配置容器环境的,docker-compose里有几个重要的参数

(1)iamge:这个的镜像名称

(2)container_name:容器名称

(3)environment:配置参数

(1)port:这个是docker的端口映射

(2)volumes:这个是文件路径映射

三、部署seafile

home – Seafile Cloud 主要看这里

docker compose 的部署很简单,直接下载yml的配置文件就可以,docker会根据配置文件自动下载需要环境文件。

1、seafile的docker-compose.yml需要修改以下信息

(1)db:数据库里要修改数据库的密码和数据库的映射路径

(2)elasticsearch:修改映射路径

(3)seafile:

  • 修改端口,建议把80和443端口都映射成外部端口,同时,修改映射路径
  • 修改路径映射
  • 修改环境environment
    • 数据库密码
    • 管理员邮箱和密码
    • 服务器hostname,写上域名或者IP

2、部署

采用docker compose up -d即可完成

3、开启https

修改seafile-data/nginx/conf文件,这里我们可以看到,seafile内部是8000端口,通过nginx反向代理到了80端口的,我们需要把80端口的数据rewrite到https,看官方的示例即可

配置443端口,要先将证书文件和私钥复制到seafile-data文件下,建一个文件夹,存放证书和私钥。要知道,seafile-data文件夹在容器里面对应的/shared文件夹。因此,证书的配置文件里面,证书的路径要写容器的路径,也就是/shared/ssl/证书,这点很重要,剩下的就很简单了。

配置完成后,重启容器的nginx

docker exec -it seafile /usr/sbin/nginx -s reload

4、配置CSRF_TRUSTED_ORGINS,这个是关于浏览器跨域的一个安全设定,如果不设定这个,会出现错误,可能是seafile尚未修复的一个bug

修改seafile-data/seafile/conf/seahub_settings.py文件

在最后添加一行

CSRF_TRUSTED_ORIGINS = ['域名/IP:端口']

https://github.com/haiwen/seafile/issues/2118#issuecomment-523688712

修改完后,重启seafile

docker-compose restart

ok,现在用浏览器登录试试

https://域名/IP:端口

赞(0)
未经允许不得转载:SciDog » 入坑docker,采用docker compose部署seafile

评论 抢沙发