
amiveth/docker-documentserver
ONLYOFFICE Document Server是一款在线办公套件,提供文本、电子表格和演示文稿的查看与编辑功能,完全兼容Office Open XML格式(.docx、.xlsx、.pptx),并支持实时协作编辑。
让 AI 帮你使用轩辕镜像? · 展开查看说明 · 点击收起说明
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这段话即可:
请先阅读并遵守:https://xuanyuan.cloud/agents.md
未读文档前不要生成 pull 命令或排错方案。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
概述
ONLYOFFICE Document Server是一款在线办公套件,包含文本、电子表格和演示文稿的查看器与编辑器,完全兼容Office Open XML格式(.docx、.xlsx、.pptx),并支持实时协作编辑。
功能特性
- ONLYOFFICE文档编辑器
- ONLYOFFICE电子表格编辑器
- ONLYOFFICE演示文稿编辑器
- ONLYOFFICE Documents iOS应用
- 协作编辑功能
- 象形文字支持
- 支持所有主流格式:DOC、DOCX、TXT、ODT、RTF、ODP、EPUB、ODS、XLS、XLSX、CSV、PPTX、HTML
将其与ONLYOFFICE社区服务器集成后,您将能够:
- 查看和编辑存储在与ONLYOFFICE连接的Drive、Box、Dropbox、OneDrive、OwnCloud上的文件
- 共享文件
- 在网站上嵌入文档
- 管理文档的访问权限
推荐系统要求
- 内存:4 GB或更高
- CPU:双核2 GHz或更高
- 交换空间:至少2 GB
- 硬盘:至少2 GB可用空间
- 操作系统:64位Red Hat、CentOS或其他兼容发行版(内核版本3.8或更高),64位Debian、Ubuntu或其他兼容发行版(内核版本3.8或更高)
- Docker:1.9.0版或更高
运行Docker镜像
bashsudo docker run -i -t -d -p 80:80 onlyoffice/documentserver
如果您希望单独安装ONLYOFFICE文档服务器,请使用此命令。若要安装与社区服务器和邮件服务器集成的ONLYOFFICE文档服务器,请参考下面相应的说明。
配置Docker镜像
数据存储
所有数据都存储在专门指定的目录(数据卷)中,位置如下:
- /var/log/onlyoffice:ONLYOFFICE文档服务器日志
- /var/www/onlyoffice/Data:证书
- /var/lib/onlyoffice:文件缓存
- /var/lib/postgresql:数据库
要从容器外部访问数据,需要挂载这些卷。可通过在docker run命令中指定-v选项实现。
bashsudo 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 \ -v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \ -v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql onlyoffice/documentserver
通常,您不需要存储容器数据,因为容器的运行不依赖于其状态。保存数据的用途包括:
- 便于访问容器数据(如日志)
- 消除容器内数据大小的限制
- 使用在容器外部启动的服务(如PostgreSQL、Redis、RabbitMQ)时
在不同端口运行ONLYOFFICE文档服务器
要更改端口,请使用-p命令。例如:要通过8080端口访问门户,执行以下命令:
bashsudo docker run -i -t -d -p 8080:80 onlyoffice/documentserver
使用HTTPS运行ONLYOFFICE文档服务器
bashsudo docker run -i -t -d -p 443:443 \ -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice/documentserver
可以使用SSL保护对onlyoffice应用的访问,以防止未授权访问。虽然CA认证的SSL证书允许通过CA验证信任,但自签名证书也可以提供同等级别的信任验证,前提是每个客户端采取一些额外步骤来验证您网站的身份。以下是实现此目的的说明。
要通过SSL保护应用,基本上需要两个文件:
- 私钥(.key)
- SSL证书(.crt)
因此,您需要创建并安装以下文件:
/app/onlyoffice/DocumentServer/data/certs/onlyoffice.key /app/onlyoffice/DocumentServer/data/certs/onlyoffice.crt
使用CA认证证书时,这些文件由CA提供。使用自签名证书时,您需要自行生成这些文件。如果您已有CA认证的SSL证书,请跳过以下部分。
生成自签名证书
生成自签名SSL证书涉及简单的3步过程。
步骤1:创建服务器私钥
bashopenssl genrsa -out onlyoffice.key 2048
步骤2:创建证书签名请求(CSR)
bashopenssl req -new -key onlyoffice.key -out onlyoffice.csr
步骤3:使用私钥和CSR签名证书
bashopenssl x509 -req -days 365 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt
现在您已生成有效期为365天的SSL证书。
加强服务器安全性
本节提供加强服务器安全性的说明。 要实现此目的,您需要生成更强的DHE参数。
bashopenssl dhparam -out dhparam.pem 2048
安装SSL证书
在上面生成的四个文件中,您需要在onlyoffice服务器上安装onlyoffice.key、onlyoffice.crt和dhparam.pem文件。CSR文件不需要,但请确保安全备份该文件(以防将来需要)。
onlyoffice应用配置的SSL证书默认查找路径为/var/www/onlyoffice/Data/certs,但可以使用SSL_KEY_PATH、SSL_CERTIFICATE_PATH和SSL_DHPARAM_PATH配置选项更改。
/var/www/onlyoffice/Data/是数据存储路径,这意味着您必须在/app/onlyoffice/DocumentServer/data/内创建一个名为certs的文件夹,并将文件复制到其中,作为安全措施,您需要将onlyoffice.key文件的权限更新为仅所有者可读取。
bashmkdir -p /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
现在,您距离保护应用仅一步之遥。
可用配置参数
请参考docker run命令的--env-file标志,您可以在单个文件中指定所有必需的环境变量。这将避免编写可能很长的docker run命令。
以下是可通过环境变量设置的完整参数列表。
- ONLYOFFICE_HTTPS_HSTS_ENABLED:关闭HSTS配置的高级选项。仅在使用SSL时适用。默认值为
true。 - ONLYOFFICE_HTTPS_HSTS_MAXAGE:在onlyoffice nginx虚拟主机配置中设置HSTS max-age的高级选项。仅在使用SSL时适用。默认值为
31536000。 - SSL_CERTIFICATE_PATH:要使用的SSL证书路径。默认值为
/var/www/onlyoffice/Data/certs/onlyoffice.crt。 - SSL_KEY_PATH:SSL证书私钥的路径。默认值为
/var/www/onlyoffice/Data/certs/onlyoffice.key。 - SSL_DHPARAM_PATH:Diffie-Hellman参数的路径。默认值为
/var/www/onlyoffice/Data/certs/dhparam.pem。 - SSL_VERIFY_CLIENT:使用
CA_CERTIFICATES_PATH文件启用客户端证书验证。默认值为false。 - POSTGRESQL_SERVER_HOST:PostgreSQL服务器运行的主机IP地址或名称。
- POSTGRESQL_SERVER_PORT:PostgreSQL服务器端口号。
- POSTGRESQL_SERVER_DB_NAME:镜像启动时要创建的PostgreSQL数据库名称。
- POSTGRESQL_SERVER_USER:具有PostgreSQL账户超级用户权限的新用户名。
- POSTGRESQL_SERVER_PASS:为PostgreSQL账户设置的密码。
- RABBITMQ_SERVER_URL:连接到RabbitMQ服务器的http://www.rabbitmq.com/uri-spec.html "RabbitMQ URI Specification"。
- REDIS_SERVER_HOST:Redis服务器运行的主机IP地址或名称。
- REDIS_SERVER_PORT:Redis服务器端口号。
- NGINX_WORKER_PROCESSES:定义nginx工作进程数。
- NGINX_WORKER_CONNECTIONS:设置nginx工作进程可打开的最大同时连接数。
- JWT_ENABLED:指定是否启用ONLYOFFICE文档服务器的JSON Web Token验证。默认值为
false。 - JWT_SECRET:定义用于验证对ONLYOFFICE文档服务器请求的JSON Web Token的密钥。默认值为
secret。 - JWT_HEADER:定义用于发送JSON Web Token的HTTP头。默认值为
Authorization。
安装与社区服务器和邮件服务器集成的ONLYOFFICE文档服务器
ONLYOFFICE文档服务器是ONLYOFFICE社区版的一部分,该社区版还包括社区服务器和邮件服务器。要安装它们,请按照以下简单步骤操作:
步骤1:创建onlyoffice网络。
bashdocker network create --driver bridge onlyoffice
然后使用docker run --net onlyoffice选项在该网络上启动容器:
步骤2:安装MySQL。
按照这些步骤安装MySQL服务器。
步骤3:安装ONLYOFFICE文档服务器。
bashsudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-document-server \ -v /app/onlyoffice/DocumentServer/logs:/var/log/onlyoffice \ -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data \ -v /app/onlyoffice/DocumentServer/lib:/var/lib/onlyoffice \ -v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql \ onlyoffice/documentserver
步骤4:安装ONLYOFFICE邮件服务器。
为使邮件服务器正常工作,您需要指定其主机名“yourdomain.com”。
bashsudo docker run --init --net onlyoffice --privileged -i -t -d --restart=always --name onlyoffice-mail-server -p 25:25 -p 143:143 -p 587:587 \ -e MYSQL_SERVER=onlyoffice-mysql-server \ -e MYSQL_SERVER_PORT=3306 \ -e MYSQL_ROOT_USER=root \ -e MYSQL_ROOT_PASSWD=my-secret-pw \ -e MYSQL_SERVER_DB_NAME=onlyoffice_mailserver \ -v /app/onlyoffice/MailServer/data:/var/vmail \ -v /app/onlyoffice/MailServer/data/certs:/etc/pki/tls/mailserver \ -v /app/onlyoffice/MailServer/logs:/var/log \ -h yourdomain.com \ onlyoffice/mailserver
邮件服务器的其他参数可在https://github.com/ONLYOFFICE/Docker-CommunityServer/blob/master/docker-compose.yml#L75找到。
要了解更多信息,请参阅https://github.com/ONLYOFFICE/Docker-MailServer "ONLYOFFICE Mail Server documentation"。
步骤5:安装ONLYOFFICE社区服务器
bashsudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-community-server -p 80:80 -p 443:443 -p 5222:5222 \ -e MYSQL_SERVER_ROOT_PASSWORD=my-secret-pw \ -e MYSQL_SERVER_DB_NAME=onlyoffice \ -e MYSQL_SERVER_HOST=onlyoffice-mysql-server \ -e MYSQL_SERVER_USER=onlyoffice_user \ -e MYSQL_SERVER_PASS=onlyoffice_pass \ -e DOCUMENT_SERVER_PORT_80_TCP_ADDR=onlyoffice-document-server \ -e MAIL_SERVER_API_HOST=${MAIL_SERVER_IP} \ -e MAIL_SERVER_DB_HOST=onlyoffice-mysql-server \ -e MAIL_SERVER_DB_NAME=onlyoffice_mailserver \ -e MAIL_SERVER_DB_PORT=3306 \ -e MAIL_SERVER_DB_USER=root \ -e MAIL_SERVER_DB_PASS=my-secret-pw \ -v /app/onlyoffice/CommunityServer/data:/var/www/onlyoffice/Data \ -v /app/onlyoffice/CommunityServer/logs:/var/log/onlyoffice \ onlyoffice/communityserver
其中${MAIL_SERVER_IP}是ONLYOFFICE邮件服务器的IP地址。您可以使用以下命令轻松获取:
docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' onlyoffice-mail-server
或者,您可以使用自动安装脚本一次性安装整个ONLYOFFICE社区版。为使邮件服务器正常工作,您需要指定其主机名“yourdomain.com”。
步骤1:下载社区版Docker脚本文件
bashwget http://download.onlyoffice.com/install/opensource-install.sh
步骤2:执行以下命令安装ONLYOFFICE社区版:
bashbash opensource-install.sh -md yourdomain.com
或者,使用https://docs.docker.com/compose/install "docker-compose"。为使邮件服务器正常工作,您需要指定其主机名“yourdomain.com”。假设您已安装docker-compose,执行以下命令:
bashwget https://raw.githubusercontent.com/ONLYOFFICE/Docker-CommunityServer/master/docker-compose.yml docker-compose up -d
问题
Docker问题
作为一个相对较新的项目,Docker由其社区积极开发和维护。因此,建议使用最新版本的Docker,因为您遇到的问题可能已在较新的Docker版本中修复。
在基于rpm的发行版上,ONLYOFFICE文档服务器已知的Docker问题是,有时容器内的进程无法启动。Fedora和RHEL/CentOS用户应尝试使用setenforce 0禁用selinux。如果这解决了问题,您可以选择保持SELinux禁用(RedHat不推荐),或切换到使用Ubuntu。
项目信息
官方网站:http://onlyoffice.org "http://www.onlyoffice.org"
代码仓库:https://github.com/ONLYOFFICE/DocumentServer "https://github.com/ONLYOFFICE/DocumentServer"
Docker镜像:https://github.com/ONLYOFFICE/Docker-DocumentServer "https://github.com/ONLYOFFICE/Docker-DocumentServer"
许可证:https://help.onlyoffice.com/products/files/doceditor.aspx?fileid=4358397&doc=K0ZUdlVuQzQ0RFhhMzhZRVN4ZFIvaHlhUjN2eS9XMXpKR1M5WEppUk1Gcz0_IjQzNTgzOTci0 "GNU AGPL v3.0"
SaaS版本:http://www.onlyoffice.com "http://www.onlyoffice.com"
用户反馈与支持
如果您对此镜像有任何问题或疑问,请访问我们的官方论坛寻找答案:http://dev.onlyoffice.org,或者您可以在http://stackoverflow.com/questions/tagged/onlyoffice上提问和回答ONLYOFFICE开发相关问题。
镜像拉取方式
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
轩辕镜像加速拉取命令点我查看更多 docker-documentserver 镜像标签
DockerHub 原生拉取命令
镜像拉取常见问题
功能
错误码
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务