1. 环境准备与Docker安装在Ubuntu 20.04上部署DzzOffice与OnlyOffice协同办公平台首先需要确保系统环境满足基本要求。我推荐使用4核CPU、8GB内存及50GB磁盘空间的配置这个配置能够流畅运行所有服务。操作系统方面Ubuntu 20.04 LTS是最佳选择因为它有长期支持且稳定性经过验证。安装Docker是第一步这里我分享一个实测稳定的方法。打开终端依次执行以下命令# 更新软件包索引 sudo apt-get update # 安装依赖工具 sudo apt-get install -y apt-transport-https ca-certificates curl software-properties-common # 添加Docker官方GPG密钥 curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg # 设置稳定版仓库 echo deb [archamd64 signed-by/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null # 安装Docker引擎 sudo apt-get update sudo apt-get install -y docker-ce docker-ce-cli containerd.io # 验证安装 sudo docker run hello-world安装完成后建议进行一些优化配置。创建或修改/etc/docker/daemon.json文件添加以下内容来配置镜像加速{ registry-mirrors: [https://registry.docker-cn.com], log-driver: json-file, log-opts: { max-size: 100m } }然后重启Docker服务使配置生效sudo systemctl daemon-reload sudo systemctl restart docker最后将当前用户加入docker组避免每次都要sudosudo usermod -aG docker $USER newgrp docker2. Docker Compose编排配置Docker Compose是管理多容器应用的神器通过一个YAML文件就能定义所有服务。我建议在/opt/office_stack目录下创建工作环境sudo mkdir -p /opt/office_stack/{mysql,dzzoffice,onlyoffice} cd /opt/office_stack创建docker-compose.yml文件这是我经过多次优化后的配置version: 3.8 services: mysql: image: mysql:5.7 container_name: office_mysql environment: MYSQL_ROOT_PASSWORD: RootPass123 MYSQL_DATABASE: dzzoffice MYSQL_USER: dzzoffice MYSQL_PASSWORD: UserPass456 volumes: - ./mysql:/var/lib/mysql networks: - office_net restart: unless-stopped healthcheck: test: [CMD, mysqladmin, ping, -h, localhost] interval: 5s timeout: 5s retries: 5 dzzoffice: image: zyx0814/dzzoffice:2.02 container_name: office_dzz depends_on: mysql: condition: service_healthy volumes: - ./dzzoffice:/var/www/html/data environment: - TZAsia/Shanghai ports: - 8080:80 networks: - office_net restart: unless-stopped onlyoffice: image: onlyoffice/documentserver:7.1 container_name: office_docs ports: - 9000:80 - 9443:443 networks: - office_net restart: unless-stopped environment: - JWT_ENABLEDfalse - TZAsia/Shanghai volumes: - ./onlyoffice/logs:/var/log/onlyoffice - ./onlyoffice/data:/var/www/onlyoffice/Data networks: office_net: driver: bridge这个配置有几个关键设计点使用MySQL 5.7作为数据库比MariaDB兼容性更好DzzOffice 2.02是目前最稳定的版本OnlyOffice 7.1避免了高版本的令牌验证问题所有服务使用自定义网络office_net互联数据卷映射到宿主机方便备份和管理3. 服务启动与初始化配置完成后启动服务非常简单docker-compose up -d使用以下命令查看服务状态docker-compose ps正常情况下应该看到三个服务都是running状态。如果出现问题可以查看日志排查docker-compose logs -f 服务名DzzOffice初始化需要通过浏览器完成。访问http://服务器IP:8080/install/index.php按照向导操作数据库配置数据库服务器mysql注意这里用服务名而不是IP数据库名dzzoffice用户名和密码对应compose文件中设置的MYSQL_USER和MYSQL_PASSWORD管理员账户设置一个强密码的管理员账号建议邮箱填写真实可用的方便找回密码完成安装安装成功后删除install目录建议立即修改管理员密码OnlyOffice的集成需要在DzzOffice后台完成进入应用市场 → 安装OnlyOffice插件在插件设置中输入OnlyOffice服务地址http://服务器IP:9000设置DzzOffice服务器地址http://服务器IP:80804. 常见问题与优化在实际部署中我遇到过几个典型问题及解决方案问题1OnlyOffice无法连接检查防火墙是否开放9000端口查看OnlyOffice容器日志docker logs office_docs确认DzzOffice设置的OnlyOffice地址正确问题2文档编辑后无法保存检查JWT_ENABLED是否设置为false确认网络互通docker exec office_dzz ping office_docs查看OnlyOffice的/var/log/onlyoffice日志问题3上传大文件失败修改PHP上传限制docker exec -it office_dzz bash -c echo upload_max_filesize 1024M /usr/local/etc/php/conf.d/uploads.ini docker-compose restart dzzoffice对于生产环境我建议做以下优化性能调优# 在docker-compose.yml中添加 dzzoffice: deploy: resources: limits: cpus: 2 memory: 2G onlyoffice: deploy: resources: limits: cpus: 4 memory: 4G定期备份# 创建备份脚本/opt/backup_office.sh #!/bin/bash DATE$(date %Y%m%d) docker exec office_mysql mysqldump -u root -pRootPass123 dzzoffice /backups/mysql_$DATE.sql tar czvf /backups/dzzoffice_$DATE.tar.gz /opt/office_stack/dzzofficeHTTPS配置 使用Nginx反向代理并配置Lets Encrypt证书可以参考以下配置server { listen 443 ssl; server_name office.yourdomain.com; ssl_certificate /etc/letsencrypt/live/office.yourdomain.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/office.yourdomain.com/privkey.pem; location / { proxy_pass http://localhost:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } }这套方案在我负责的多个企业部署中运行稳定特别适合20-50人的团队使用。相比传统部署方式容器化方案的优势非常明显部署时间从原来的半天缩短到10分钟升级维护也变得更加简单。