使用Docker部署ONLYOFFICE Document Server

avatar
avatar
tianzi
91
文章
1
评论
January 24, 202005:40:30 评论 2615字阅读8分43秒

From:橙叶博客 https://www.orgleaf.com/2588.html

上一篇文章介绍了在Ubuntu/Debian系统中安装ONLYOFFICE的文档服务器,步骤还是稍微有些复杂的,而且不适用于CentOS/RedHat一类的系统。相比之下,如果借助Docker来部署的话就省事多了。

推荐服务器配置

既然官方文档有说,那就贴在下面吧。

配置方面还是尽量满足吧,实测会消耗很多资源,小内存VPS根本扛不住。

  • RAM: 4 GB+
  • CPU: 双核 2 GHz +
  • Swap: 至少2 GB
  • HDD: 至少有2GB的剩余空间
  • 系统要求: RedHat 64bit,CentOS类、Debian类的内核版本3.8以上。
  • Docker: 1.9.0版本及以上

查看内核版本:

uname -r

安装Docker

CentOS/RedHat/Fedora

使用yum命令安装Docker:

yum install docker -y

启动Docker服务:

systemctl start docker

Debian/Ubuntu

使用apt命令安装Docker:

sudo apt-get install docker.io

Docker服务会自动启动。

拉取ONLYOFFICE Document Server 的Docker镜像

拉取镜像:

sudo docker pull onlyoffice/documentserver

使用Docker部署ONLYOFFICE Document Server

国内主机从Docker Hub拉取镜像的话可能会比较慢,可以尝试类似阿里云、Daocloud的加速器。

拉取完成:

使用Docker部署ONLYOFFICE Document Server

启动Docker容器

启动Document Server镜像,并映射80端口至本地。

sudo docker run -i -t -d -p 80:80 onlyoffice/documentserver

使用Docker部署ONLYOFFICE Document Server

启动后,访问http://服务器地址:80,就可以看到如下的页面:

使用Docker部署ONLYOFFICE Document Server

刚开始看到的可能是是502 Bad Gateway,稍等一会,刷新浏览器页面即可。

将Document Server映射至其它端口

80端口上往往会运行像Apache、Nginx之类的HTTP服务,为了避免端口冲突,我们可以将Document Server映射至其它端口。

例如映射至9000端口:

sudo docker run -i -t -d -p 9000:80 onlyoffice/documentserver

使用Docker部署ONLYOFFICE Document Server

使用Docker部署ONLYOFFICE Document Server

一些说明……

Document Server的数据在容器中的储存位置如下:

  • /var/log/onlyoffice 存放ONLYOFFICE Document Server日志
  • /var/www/onlyoffice/Data 存放证书文件

你可以用

sudo docker -exec -it onlyoffice/documentserver /bin/bash

登入容器,也可以将以上两个目录映射到本地,这样更方便。

创建目录:

mkdir -p /app/onlyoffice/DocumentServer/logs
mkdir -p /app/onlyoffice/DocumentServer/data

使用

docker -v

将目录映射至本地:

sudo docker run -i -t -d -p 80:80 \
    -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice  \
    -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data  onlyoffice/documentserver

这样,直接访问本地的

/app/onlyoffice/DocumentServer/

下的两个文件夹就可以了。


启用HTTPS

HTTPS需要使用SSL证书,可以自己签发也可以用ca机构签发的,加密效果相同。

生成证书:

  1. 创建私钥
    openssl genrsa -out onlyoffice.key 2048
  2. 创建CSR
    openssl req -new -key onlyoffice.key -out onlyoffice.csr
  3. 用私枂和CSR签发证书
    openssl x509 -req -days 365 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt
  4. 用dhparam加密服务器密钥
    openssl dhparam -out dhparam.pem 2048

完成证书的生成后,将生成的证书拷贝到

/app/onlyoffice/DocumentServer/data/certs

目录下。

创建相应目录:

mkdir -p /app/onlyoffice/DocumentServer/data/certs

复制证书到

/app/onlyoffice/DocumentServer/data/certs

目录并设置权限:

cp onlyoffice.key /app/onlyoffice/DocumentServer/data/certs/
cp onlyoffice.crt /app/onlyoffice/DocumentServer/data/certs/
cp dhparam.pem /app/onlyoffice/DocumentServer/data/certs/
chmod 400 /app/onlyoffice/DocumentServer/data/certs/onlyoffice.key

运行容器,映射容器的443端口和Data目录至本地:

sudo docker run -i -t -d -p 443:443 \
   -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data  onlyoffice/documentserver

使用Docker部署ONLYOFFICE Document Server

在浏览器里访问https://服务器地址/。(CentOS/RHEL/Fedora系统可能无法访问,请往下看)

使用Docker部署ONLYOFFICE Document Server

当然了,如果本地443端口已经被占用了的话,可以映射至其它端口:

sudo docker run -i -t -d -p 9000:443 \
   -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data  onlyoffice/documentserver

但是仍然是要用HTTPS协议访问,比如:https://服务器地址:9000/

CentOS/RHEL/Fedora无法访问

这是由于SELinux的阻止。

暂时关闭SELinux(重启后失效):

setenforce 0

 

继续阅读
  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
avatar
  • 本文由 发表于 January 24, 202005:40:30
  • 除非特殊声明,本站文章均为原创,转载请务必保留本文链接
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: