ONLYOFFICE 文档服务器(ONLYOFFICE Document Server)是一款在线办公套件,包含文本、电子表格和演示文稿的查看器与编辑器,完全兼容 Office Open XML 格式(.docx、.xlsx、.pptx),并支持实时协同编辑。
从 6.0 版本开始,文档服务器以 ONLYOFFICE Docs 名称发布,提供三个版本。本镜像安装的是免费的社区版(Community Edition)。
ONLYOFFICE Docs 可作为 ONLYOFFICE Workspace 的组成部分,或与第三方同步共享解决方案(如 Nextcloud、ownCloud、Seafile 等)集成,在其界面内启用协同编辑功能。
若需单独安装 ONLYOFFICE 文档服务器,执行以下命令:
bashsudo docker run -i -t -d -p 80:80 onlyoffice/documentserver
文档服务器的所有数据存储在以下指定目录(数据卷):
/var/log/onlyoffice:ONLYOFFICE 文档服务器日志/var/www/onlyoffice/Data:证书/var/lib/onlyoffice:文件缓存/var/lib/postgresql:数据库如需从容器外部访问数据,需通过 -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/rabbitmq:/var/lib/rabbitmq \ -v /app/onlyoffice/DocumentServer/redis:/var/lib/redis \ -v /app/onlyoffice/DocumentServer/db:/var/lib/postgresql onlyoffice/documentserver
挂载数据卷的优势:
通过 -p 参数修改端口。例如,使用 8080 端口访问:
bashsudo docker run -i -t -d -p 8080:80 onlyoffice/documentserver
bashsudo docker run -i -t -d -p 443:443 \ -v /app/onlyoffice/DocumentServer/data:/var/www/onlyoffice/Data onlyoffice/documentserver
HTTPS 访问需准备:
证书文件需放置在宿主机的以下路径(挂载至容器内 /var/www/onlyoffice/Data/certs):
/app/onlyoffice/DocumentServer/data/certs/tls.key /app/onlyoffice/DocumentServer/data/certs/tls.crt
CA 颁发的证书(如 Let's Encrypt)可直接使用;自签名证书需手动生成。
通过环境变量自动获取和续期 Let's Encrypt 证书:
bashsudo docker run -i -t -d -p 443:443 \ -e LETS_ENCRYPT_DOMAIN=your_domain -e LETS_ENCRYPT_MAIL=your_mail onlyoffice/documentserver
步骤 1:创建服务器私钥
bashopenssl genrsa -out tls.key 2048
步骤 2:创建证书签名请求(CSR)
bashopenssl req -new -key tls.key -out tls.csr
步骤 3:使用私钥和 CSR 签名证书(有效期 365 天)
bashopenssl x509 -req -days 365 -in tls.csr -signkey tls.key -out tls.crt
生成更强的 DHE 参数:
bashopenssl dhparam -out dhparam.pem 2048
将 tls.key、tls.crt 和 dhparam.pem 复制到宿主机证书目录,并设置权限:
bashmkdir -p /app/onlyoffice/DocumentServer/data/certs cp tls.key /app/onlyoffice/DocumentServer/data/certs/ cp tls.crt /app/onlyoffice/DocumentServer/data/certs/ cp dhparam.pem /app/onlyoffice/DocumentServer/data/certs/ chmod 400 /app/onlyoffice/DocumentServer/data/certs/tls.key
以下环境变量可通过 docker run -e 或 --env-file 指定:
| 参数名称 | 说明 | 默认值 |
|---|---|---|
| ONLYOFFICE_HTTPS_HSTS_ENABLED | 启用/禁用 HSTS 配置(仅 SSL 模式) | true |
| ONLYOFFICE_HTTPS_HSTS_MAXAGE | HSTS 最大有效期(秒) | 31536000 |
| SSL_CERTIFICATE_PATH | SSL 证书路径 | /var/www/onlyoffice/Data/certs/tls.crt |
| SSL_KEY_PATH | 私钥路径 | /var/www/onlyoffice/Data/certs/tls.key |
| SSL_DHPARAM_PATH | Diffie-Hellman 参数路径 | /var/www/onlyoffice/Data/certs/dhparam.pem |
| SSL_VERIFY_CLIENT | 启用客户端证书验证(需 CA 证书) | false |
| DB_TYPE | 数据库类型(postgres/mariadb/mysql) | postgres |
| DB_HOST | 数据库主机地址 | - |
| DB_PORT | 数据库端口 | - |
| DB_NAME | 数据库名称 | - |
| DB_USER | 数据库用户名 | - |
| DB_PWD | 数据库密码 | - |
| AMQP_URI | 消息代理连接 URI(RabbitMQ/ActiveMQ) | - |
| AMQP_TYPE | 消息代理类型(rabbitmq/activemq) | rabbitmq |
| REDIS_SERVER_HOST | Redis 服务器地址 | - |
| REDIS_SERVER_PORT | Redis 端口 | - |
| NGINX_WORKER_PROCESSES | Nginx 工作进程数 | - |
| NGINX_WORKER_CONNECTIONS | Nginx 单进程最大连接数 | - |
| JWT_ENABLED | 启用 JWT 验证 | false |
| JWT_SECRET | JWT 密钥 | secret |
| JWT_HEADER | 传递 JWT 的 HTTP 头 | Authorization |
| JWT_IN_BODY | 启用请求体中的 JWT 验证 | false |
| USE_UNAUTHORIZED_STORAGE | 允许自签名证书的存储服务器(如 Nextcloud) | false |
| GENERATE_FONTS | 启动时重新生成字体列表和缩略图 | true |
| METRICS_ENABLED | 启用 StatsD 指标收集 | false |
| METRICS_HOST | StatsD 主机 | localhost |
| METRICS_PORT | StatsD 端口 | 8125 |
| METRICS_PREFIX | 指标前缀 | ds. |
| LETS_ENCRYPT_DOMAIN | Let's Encrypt 域名 | - |
| LETS_ENCRYPT_MAIL | Let's Encrypt *** | - |
ONLYOFFICE 文档服务器可与社区服务器、邮件服务器组成 ONLYOFFICE Community Edition。
步骤 1:创建 Docker 网络
bashdocker network create --driver bridge onlyoffice
步骤 2:安装 MySQL
参考 MySQL 安装指南。
步骤 3:安装文档服务器
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:安装邮件服务器
需指定主机名 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
步骤 5:安装社区服务器
替换 ${MAIL_SERVER_IP} 为邮件服务器 IP(通过 docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' onlyoffice-mail-server 获取):
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
使用脚本安装:
bashwget [***] bash opensource-install.sh -md yourdomain.com
使用 docker-compose:
bashwget [***] docker-compose up -d
setenforce 0 临时禁用 SELinux,或切换至 Ubuntu。文档服务器仅在所有编辑用户关闭文档后保存更改。更新或重启前需强制断开用户连接,执行:
bashsudo docker exec <容器ID> documentserver-prepare4shutdown.sh
(断开用户可能需要 5 分钟)
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429