
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
本镜像基于PHP8.1、Nginx、MariaDB构建,提供DzzOffice开源协同办公平台的完整部署方案,支持快速启动、数据持久化、HTTPS部署及Docker Compose集成,适用于个人、团队或企业快速搭建协同办公系统。
bash# 拉取核心镜像 docker pull xiaohu2023/dzzoffice docker pull redis:alpine docker pull mariadb:lts # 导出镜像为tar包(便于离线传输) docker save -o dzzoffice.tar xiaohu2023/dzzoffice docker save -o redis.tar redis:alpine docker save -o mariadb.tar mariadb:lts
现成离线包(amd64架构):[***]
传输tar包到离线服务器并进入tar包所在目录,执行导入:
bashdocker load -i dzzoffice.tar docker load -i redis.tar docker load -i mariadb.tar
导入完成后,执行docker images命令验证,若能看到xiaohu2023/dzzoffice、redis:alpine、mariadb:lts 3个镜像,则导入成功。
默认使用80端口,容器删除后数据会丢失,仅推荐临时测试使用。
bashdocker run -d -p 80:80 xiaohu2023/dzzoffice
创建数据目录并在启动时挂载
bashmkdir /data docker run -d -p 80:80 -v /data:/var/www/html xiaohu2023/dzzoffice
若需通过HTTPS访问,需提前准备SSL证书(格式必须为fullchain.pem、privkey.pem)
bashdocker run -d -p 443:443 -v "你的证书目录":/etc/nginx/ssl --name dzzoffice xiaohu2023/dzzoffice
通过Docker Compose同时部署DzzOffice应用和MariaDB数据库,实现应用、数据库数据双重持久化,配置更灵活,推荐生产环境使用。
步骤1:拉取部署脚本
bashgit clone https://github.com/zyx0814/dzzoffice-docker.git cd ./dzzoffice-docker/compose/
若无法拉取,可自行新建
db.env文件设置数据库环境变量并创建docker-compose.yml文件配置映射端口、持久化目录等。
db.env文件内容:
envMYSQL_PASSWORD=dzzoffice MYSQL_DATABASE=dzzoffice MYSQL_USER=dzzoffice
docker-compose.yml文件内容:
yamlversion: '3.5' services: db: image: mariadb:lts command: --transaction-isolation=READ-COMMITTED restart: always volumes: - "./db:/var/lib/mysql" # ./db是数据库持久化目录,可修改 environment: - MYSQL_ROOT_PASSWORD=dzzoffice - MARIADB_AUTO_UPGRADE=1 - MARIADB_DISABLE_UPGRADE_BACKUP=1 env_file: - db.env app: image: xiaohu2023/dzzoffice restart: always ports: - "8080:80" # 左边8080是映射的主机端口,可修改;右边80是容器端口 volumes: - "./site:/var/www/html" # ./site是站点目录位置,可修改;映射整个项目目录到容器的/var/www/html目录下 environment: - MYSQL_HOST=db - REDIS_HOST=redis env_file: - db.env depends_on: - db - redis redis: image: redis:alpine restart: always
步骤2:自定义配置(可选)
根据需求修改以下文件,默认配置可直接跳过:
docker-compose.yml,修改MYSQL_ROOT_PASSWORD=dzzoffice中的“dzzoffice”为自定义密码;docker-compose.yml,修改ports字段(默认站点端口8080);db.env,修改数据库名称、用户名及密码。步骤3:启动服务
bashdocker-compose up -d
命令执行后,会自动拉取所需容器并后台运行。
步骤4:访问与初始化
容器启动完成后,通过http://服务器IP:8080访问(端口可在docker-compose.yml中修改),按页面提示完成DzzOffice初始化设置。
关键数据已通过挂载宿主机目录实现持久化,目录对应关系如下:
| 宿主机目录 | 容器内目录 | 存储内容 |
|---|---|---|
./db | MySQL数据目录 | MySQL所有数据(含DzzOffice数据库) |
./site/data | DzzOffice数据目录 | 用户上传的文件 |
./site/config | DzzOffice配置目录 | 应用配置文件 |
./site | DzzOffice项目目录 | 应用程序所有文件 |
| 操作场景 | 命令/方法 | 数据影响 |
|---|---|---|
| 正常重启服务 | docker-compose restart | 数据完全保留 |
| 彻底停止后重新启动 | docker-compose down → docker-compose up -d | 数据保留(依赖宿主机挂载目录) |
| 查看服务状态 | docker-compose ps | - |
./db下的文件,应通过SQL命令操作数据库;./db、./site目录,避免数据丢失。初始化DzzOffice时,需根据数据库部署位置填写正确的“数据库地址”,规则如下:
| 数据库部署位置 | 数据库地址填写内容 | 说明 |
|---|---|---|
| 容器内MySQL(Docker Compose部署) | db | Docker内部可通过容器名“db”解析通信 |
| 宿主机MySQL(服务器本地数据库) | host.docker.internal | Docker提供的宿主机映射地址,支持Windows、Mac及部分Linux环境 |
| 外部MySQL(其他服务器数据库) | 数据库IP:端口(如192.168.1.100:3306) | 需确保数据库服务器允许当前服务器访问 |
DzzOffice容器支持通过环境变量自动初始化信息。
MYSQL_DATABASE:数据库名MYSQL_USER:数据库用户MYSQL_PASSWORD:数据库用户密码MYSQL_HOST:数据库服务地址REDIS_HOST:Redis地址REDIS_PASSWORD:Redis密码PUID:站点运行用户nginx的用户UIDPGID:站点运行用户nginx的用户组GIDFPM_MAX:php-fpm最大进程数,默认50FPM_START:php-fpm初始进程数,默认10FPM_MIN_SPARE:php-fpm最小空闲进程数,默认10FPM_MAX_SPARE:php-fpm最大空闲进程数,默认30您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
来自真实用户的反馈,见证轩辕镜像的优质服务