Innevs

使用Docker部署ONLYOFFICE Document Server

原创LinuxDockerCentosOnlyofficeinnev4月20日25 阅读

##推荐服务器配置 既然官方文档有说,那就贴在下面吧。 配置方面还是尽量满足吧,实测会消耗很多资源,小内存VPS根本扛不住。

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

一、安装Docker

1.1 CentOS/RedHat/Fedora 系统

使用yum命令安装Docker:

yum install docker -y

启动Docker服务:

systemctl start docker

1.2 Debian/Ubuntu 系统

使用apt命令安装Docker:

sudo apt-get install docker.io

安装后docker会自动启动

1.3 MAC 系统

下载MAC版本安装程序,然后按照提示直接安装,下载地址: http://get.daocloud.io/#install-docker-for-mac-windows 安装后单击进行docker图标进行启动

二、拉取ONLYOFFICE Document Server 的Docker镜像

拉取镜像:

sudo docker pull onlyoffice/documentserver

镜像拉取成功

三、启动Docker容器

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

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

启动成功 启动后,访问服务器地址:9090,就可以看到如下的页面:

四、备注

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机构签发的,加密效果相同。 生成证书: 创建私钥

openssl genrsa -out onlyoffice.key 2048

创建CSR

openssl req -new -key onlyoffice.key -out onlyoffice.csr

用私枂和CSR签发证书

openssl x509 -req -days 365 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt

用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

在浏览器里访问

当然了,如果本地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