本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
ONLYOFFICE Community Server 是一款免费开源协作系统,集成文档管理、项目管理、客户关系管理(CRM)及邮件通信功能于一体。自11.0版本起,该系统以ONLYOFFICE Groups名义发布,遵循Apache许可证。
说明:Community Server(即ONLYOFFICE Groups)是ONLYOFFICE Workspace的组成部分,后者还包含文档服务器(ONLYOFFICE Docs)、邮件服务器、即时通讯工具(Talk)及管理面板(Control Panel)。
开始安装前,需创建以下文件夹(用于数据存储与配置):
sudo mkdir -p "/app/onlyoffice/mysql/conf.d" # MySQL配置文件目录 sudo mkdir -p "/app/onlyoffice/mysql/data" # MySQL数据存储目录 sudo mkdir -p "/app/onlyoffice/mysql/initdb" # MySQL初始化脚本目录
sudo mkdir -p "/app/onlyoffice/CommunityServer/data" # 数据存储目录 sudo mkdir -p "/app/onlyoffice/CommunityServer/logs" # 日志目录 sudo mkdir -p "/app/onlyoffice/CommunityServer/letsencrypt" # Let's Encrypt证书目录
sudo mkdir -p "/app/onlyoffice/DocumentServer/data" # 数据存储目录 sudo mkdir -p "/app/onlyoffice/DocumentServer/logs" # 日志目录
sudo mkdir -p "/app/onlyoffice/MailServer/data/certs" # 证书目录 sudo mkdir -p "/app/onlyoffice/MailServer/logs" # 日志目录
sudo mkdir -p "/app/onlyoffice/ControlPanel/data" # 数据存储目录 sudo mkdir -p "/app/onlyoffice/ControlPanel/logs" # 日志目录
sudo docker network create --driver bridge onlyoffice # 创建名为onlyoffice的桥接网络,用于容器通信
echo "[mysqld] sql_mode = 'NO_ENGINE_SUBSTITUTION' max_connections = 1000 max_allowed_packet = 1048576000 group_concat_max_len = 2048 log-error = /var/log/mysql/error.log" > /app/onlyoffice/mysql/conf.d/onlyoffice.cnf
以下脚本将创建Community Server所需的onlyoffice_user及邮件服务器所需的mail_admin用户:
echo "CREATE USER 'onlyoffice_user'@'localhost' IDENTIFIED BY 'onlyoffice_pass'; CREATE USER 'mail_admin'@'localhost' IDENTIFIED BY 'Isadmin123'; GRANT ALL PRIVILEGES ON * . * TO 'root'@'%' IDENTIFIED BY 'my-secret-pw'; GRANT ALL PRIVILEGES ON * . * TO 'onlyoffice_user'@'%' IDENTIFIED BY 'onlyoffice_pass'; GRANT ALL PRIVILEGES ON * . * TO 'mail_admin'@'%' IDENTIFIED BY 'Isadmin123'; FLUSH PRIVILEGES;" > /app/onlyoffice/mysql/initdb/setup.sql
注意:脚本中%表示允许从任意域名访问数据库,若需限制访问范围,可替换为具体IP或域名。
sudo docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-mysql-server \ -v /app/onlyoffice/mysql/conf.d:/etc/mysql/conf.d \ # 挂载配置文件目录 -v /app/onlyoffice/mysql/data:/var/lib/mysql \ # 挂载数据存储目录 -v /app/onlyoffice/mysql/initdb:/docker-entrypoint-initdb.d \ # 挂载初始化脚本目录 -e MYSQL_ROOT_PASSWORD=my-secret-pw \ # root用户密码 -e MYSQL_DATABASE=onlyoffice \ # 创建默认数据库onlyoffice mysql:5.7
通过以下命令启动Community Server容器:
sudo docker run --net onlyoffice -i -t -d --privileged --restart=always --name onlyoffice-community-server -p 80:80 -p 443:443 -p 5222:5222 \ -e MYSQL_SERVER_ROOT_PASSWORD=my-secret-pw \ # MySQL root密码(需与上文一致) -e MYSQL_SERVER_DB_NAME=onlyoffice \ # 数据库名称 -e MYSQL_SERVER_HOST=onlyoffice-mysql-server \ # MySQL容器名称(用于网络通信) -e MYSQL_SERVER_USER=onlyoffice_user \ # Community Server数据库用户 -e MYSQL_SERVER_PASS=onlyoffice_pass \ # 用户密码 -v /app/onlyoffice/CommunityServer/data:/var/www/onlyoffice/Data \ # 挂载数据目录 -v /app/onlyoffice/CommunityServer/logs:/var/log/onlyoffice \ # 挂载日志目录 -v /app/onlyoffice/CommunityServer/letsencrypt:/etc/letsencrypt \ # 挂载证书目录 -v /sys/fs/cgroup:/sys/fs/cgroup:ro \ # 挂载cgroup(用于容器内服务管理) onlyoffice/communityserver
为避免升级时丢失数据,需将容器内数据目录挂载到宿主机。通过-v参数指定挂载路径,例如:
sudo docker run -i -t -d -p 80:80 \ -v /app/onlyoffice/CommunityServer/logs:/var/log/onlyoffice \ # 日志目录 -v /app/onlyoffice/CommunityServer/data:/var/www/onlyoffice/Data \ # 数据目录 -v /app/onlyoffice/CommunityServer/letsencrypt:/etc/letsencrypt \ # 证书目录 -v /sys/fs/cgroup:/sys/fs/cgroup:ro onlyoffice/communityserver
如需修改默认端口(如将80端口改为8080),通过-p参数调整:
sudo docker run -i -t -d --privileged -p 8080:80 \ # 宿主机8080端口映射容器80端口 -v /app/onlyoffice/CommunityServer/logs:/var/log/onlyoffice \ -v /app/onlyoffice/CommunityServer/data:/var/www/onlyoffice/Data \ -v /app/onlyoffice/CommunityServer/letsencrypt:/etc/letsencrypt \ -v /sys/fs/cgroup:/sys/fs/cgroup:ro onlyoffice/communityserver
容器需开放以下端口用于通信:
通过-p参数开放端口,例如:
sudo docker run -i -t -d --privileged -p 80:80 -p 443:443 -p 5222:5222 -p 25:25 ...
HTTPS配置需准备私钥(.key) 和证书(.crt),文件需放置于宿主机/app/onlyoffice/CommunityServer/data/certs/目录,容器内路径为/var/www/onlyoffice/Data/certs/。
进入Community Server容器执行脚本:
sudo docker exec -it onlyoffice-community-server bash bash /var/www/onlyoffice/Tools/letsencrypt.sh yourdomain.com subdomain1.yourdomain.com # 替换为实际域名及子域名
脚本将自动生成证书并重启Nginx,之后可通过`[***] 生成自签名证书
步骤1:生成私钥
openssl genrsa -out onlyoffice.key 2048 # 生成2048位私钥
步骤2:创建证书签名请求(CSR)
openssl req -new -key onlyoffice.key -out onlyoffice.csr # 根据提示填写域名等信息
步骤3:生成证书(有效期365天)
openssl x509 -req -days 365 -in onlyoffice.csr -signkey onlyoffice.key -out onlyoffice.crt
生成DHE参数(用于强化SSL安全):
openssl dhparam -out dhparam.pem 2048
将生成的onlyoffice.key、onlyoffice.crt、dhparam.pem复制到宿主机证书目录,并设置权限:
mkdir -p /app/onlyoffice/CommunityServer/data/certs cp onlyoffice.key onlyoffice.crt dhparam.pem /app/onlyoffice/CommunityServer/data/certs/ chmod 400 /app/onlyoffice/CommunityServer/data/certs/onlyoffice.key # 限制私钥访问权限
通过环境变量调整HTTPS相关配置(示例):
SSL_KEY_PATH:私钥路径(默认/var/www/onlyoffice/Data/certs/onlyoffice.key)SSL_CERTIFICATE_PATH:证书路径(默认/var/www/onlyoffice/Data/certs/onlyoffice.crt)ONLYOFFICE_HTTPS_HSTS_ENABLED:是否启用HSTS(默认true)Workspace包含Community Server、Document Server、Mail Server、Control Panel,需依次安装:
docker network create --driver bridge onlyoffice
sudo 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/fonts:/usr/share/fonts/truetype/custom \ -v /app/onlyoffice/DocumentServer/forgotten:/var/lib/onlyoffice/documentserver/App_Data/cache/files/forgotten \ onlyoffice/documentserver
替换yourdomain.com为实际域名:
sudo 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 \ # MySQL容器名称 -e MYSQL_ROOT_PASSWD=my-secret-pw \ # MySQL root密码 -v /app/onlyoffice/MailServer/data:/var/vmail \ # 邮件数据目录 -v /app/onlyoffice/MailServer/data/certs:/etc/pki/tls/mailserver \ # 证书目录 -h yourdomain.com \ # 邮件服务器主机名 onlyoffice/mailserver
docker run --net onlyoffice -i -t -d --restart=always --name onlyoffice-control-panel \ -v /var/run/docker.sock:/var/run/docker.sock \ # 挂载Docker控制接口 -v /app/onlyoffice/CommunityServer/data:/app/onlyoffice/CommunityServer/data \ -v /app/onlyoffice/ControlPanel/data:/var/www/onlyoffice/Data \ -v /app/onlyoffice/ControlPanel/logs:/var/log/onlyoffice onlyoffice/controlpanel
需添加文档服务器、邮件服务器等环境变量:
sudo docker run --net onlyoffice -i -t -d --privileged --restart=always --name onlyoffice-community-server -p 80:80 -p 443:443 -p 5222:5222 \ -e MYSQL_SERVER_ROOT_PASSWORD=my-secret-pw \ -e DOCUMENT_SERVER_PORT_80_TCP_ADDR=onlyoffice-document-server \ # 文档服务器容器名称 -e MAIL_SERVER_API_HOST=$(docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' onlyoffice-mail-server) \ # 邮件服务器IP ...(其他参数同上文)... onlyoffice/communityserver
sudo docker inspect --format='{{range $p,$conf:=.HostConfig.Binds}}{{$conf}};{{end}}' {{社区服务器ID}} # 替换为容器ID/名称
sudo docker rm -f {{社区服务器ID}}
sudo docker rmi -f $(sudo docker images | grep onlyoffice/communityserver | awk '{ print $3 }')
使用与原容器相同的挂载路径和环境变量启动新镜像:
sudo docker run -i -t -d --privileged -p 80:80 \ -e MYSQL_SERVER_ROOT_PASSWORD=my-secret-pw \ # 保持原参数不变 ...(其他参数)... onlyoffice/communityserver # 自动拉取最新镜像
可开发并接入自定义模块,详细说明见官方文档。
免费版仅支持 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429