别再手动折腾了!用Docker Compose一键部署DzzOffice+OnlyOffice协同办公平台(附完整配置文件)

别再手动折腾了!用Docker Compose一键部署DzzOffice+OnlyOffice协同办公平台(附完整配置文件) 基于Docker Compose的DzzOfficeOnlyOffice协同办公平台全自动部署指南在当今快节奏的数字化工作环境中企业团队对高效协同办公工具的需求日益增长。传统的手动部署方式不仅耗时耗力还容易因配置差异导致环境不一致问题。本文将介绍如何利用Docker Compose技术实现DzzOffice与OnlyOffice文档服务的一键式标准化部署彻底告别繁琐的手动配置过程。1. 环境准备与架构设计1.1 系统需求分析部署前需确保宿主机满足以下基本要求操作系统推荐使用Ubuntu 20.04 LTS或CentOS 8Docker版本19.03.0及以上Docker Compose版本1.25.0及以上硬件配置CPU至少4核内存建议8GB以上存储50GB可用空间提示可通过docker --version和docker-compose --version命令验证当前环境版本1.2 服务架构解析本方案采用三组件协同工作模式MySQL 5.7.27作为DzzOffice的后端数据库DzzOffice提供协同办公平台核心功能OnlyOffice Document Server实现文档在线编辑能力# 检查系统资源使用情况 free -h df -h2. Docker Compose配置文件详解2.1 完整配置方案创建docker-compose.yml文件内容如下version: 3.8 services: mysql: image: mysql:5.7.27 container_name: dzz-mysql environment: MYSQL_ROOT_PASSWORD: your_secure_password MYSQL_DATABASE: dzzoffice volumes: - mysql_data:/var/lib/mysql networks: - dzz-network restart: unless-stopped dzzoffice: image: imdevops/dzzoffice:latest container_name: dzz-office depends_on: - mysql environment: - DB_HOSTmysql - DB_NAMEdzzoffice - DB_USERroot - DB_PASSWORDyour_secure_password volumes: - dzz_data:/var/www/html/data networks: - dzz-network ports: - 9090:80 restart: unless-stopped onlyoffice: image: onlyoffice/documentserver container_name: dzz-onlyoffice networks: - dzz-network ports: - 9000:80 restart: unless-stopped volumes: mysql_data: dzz_data: networks: dzz-network: driver: bridge2.2 关键配置说明网络配置创建专用网络dzz-network确保服务间安全通信数据持久化MySQL数据存储在mysql_data卷DzzOffice应用数据存储在dzz_data卷环境变量必须修改your_secure_password为强密码数据库连接参数通过环境变量注入注意生产环境务必使用复杂密码替代示例中的your_secure_password3. 部署与初始化流程3.1 一键启动服务执行以下命令启动所有服务docker-compose up -d系统将自动完成拉取所需镜像首次运行创建持久化卷建立专用网络按依赖顺序启动容器3.2 服务健康检查验证各容器运行状态docker-compose ps预期输出应显示三个服务的状态均为runningNameCommandStatePortsdzz-mysqldocker-entrypoint.shUp3306/tcpdzz-officeapache2-foregroundUp0.0.0.0:9090-80/tcpdzz-onlyoffice/bin/sh -c /app/ds/runUp0.0.0.0:9000-80/tcp3.3 DzzOffice初始化配置访问http://服务器IP:9090/install/index.php按向导完成安装数据库配置主机地址填写mysql使用Docker服务名密码为your_secure_password管理员账户设置安装完成后进入应用市场启用OnlyOffice插件4. 高级配置与优化4.1 性能调优建议修改docker-compose.yml添加资源限制services: onlyoffice: deploy: resources: limits: cpus: 2 memory: 4G reservations: memory: 2G4.2 安全加固措施修改默认端口ports: - 192.168.1.100:18080:80 # 限制只监听内网IP启用HTTPS为OnlyOffice配置SSL证书使用Nginx反向代理实现全站HTTPS4.3 备份与恢复方案创建备份脚本backup.sh#!/bin/bash BACKUP_DIR/opt/dzz_backup/$(date %Y%m%d) mkdir -p $BACKUP_DIR # 备份MySQL数据 docker exec dzz-mysql mysqldump -uroot -pyour_secure_password dzzoffice $BACKUP_DIR/dzzoffice.sql # 备份应用数据 docker run --rm --volumes-from dzz-office -v $BACKUP_DIR:/backup alpine \ tar cvf /backup/dzz_data.tar /var/www/html/data5. 常见问题排查5.1 服务启动失败排查检查容器日志定位问题docker-compose logs mysql # 查看MySQL日志 docker-compose logs dzzoffice # 查看DzzOffice日志5.2 OnlyOffice集成问题确保DzzOffice中配置的API地址为http://服务器IP:90005.3 文件权限问题处理若出现文件上传失败执行docker exec dzz-office chown -R www-data:www-data /var/www/html/data6. 生产环境部署建议对于企业级部署建议考虑以下增强方案高可用架构MySQL主从复制OnlyOffice多实例负载均衡监控方案使用PrometheusGrafana监控容器资源使用设置异常告警机制自动化维护通过CI/CD管道实现配置版本控制定期自动备份验证实际部署中发现为OnlyOffice分配充足内存≥4GB能显著提升文档渲染性能。网络带宽方面建议保证至少100Mbps的可用带宽以获得流畅的协同编辑体验。