Docker Compose 一键部署企业知识库:10 分钟搭建私有化文档管理中心
对于想快速搭建企业知识库的团队来说,Docker 部署是目前门槛最低、速度最快的方式------不需要配置 Java 环境、不需要安装数据库、不需要折腾 Nginx,一个 docker-compose.yml 文件和一条命令就能跑起来,本文以 zyplayer-doc 为例,手把手带你完成从零到上线的全流程。
为什么选择 Docker 部署?
1. 零环境依赖
传统的 Java Web 项目部署需要安装 JDK、配置 Maven、安装 MySQL、配置 Nginx 反向代理......每个步骤都可能踩坑,Docker 部署把这些依赖全部封装在容器里,宿主机只需要安装 Docker 和 Docker Compose,其他一切自动处理。
2. 一键启动,一键升级
- 启动:
docker compose up -d - 升级:
docker compose pull && docker compose up -d - 备份:
docker exec mysql mysqldump ...
版本升级不需要手动迁移数据库、不需要重新配置中间件,拉取新镜像重启即可。
3. 环境一致性
开发环境、测试环境、生产环境使用同一份 docker-compose.yml,避免了"我本地能跑,服务器上不行"的经典问题。
准备工作
服务器要求
| 项目 | 最低配置 | 推荐配置 |
|---|---|---|
| 操作系统 | Linux(Ubuntu 20.04+ / CentOS 7+) | Ubuntu 22.04 |
| CPU | 2 核 | 4 核+ |
| 内存 | 4 GB | 8 GB+ |
| 磁盘 | 20 GB | 50 GB+(根据文档量增长) |
| 软件 | Docker 20.10+ / Docker Compose 2.0+ | 最新稳定版 |
安装 Docker 和 Docker Compose
如果服务器还没有 Docker 环境,快速安装:
bash
# Ubuntu 一键安装 Docker
curl -fsSL https://get.docker.com | bash
# 安装 Docker Compose 插件
sudo apt install docker-compose-plugin -y
# 验证
docker --version
docker compose version
部署步骤
第一步:创建部署目录
bash
mkdir -p /opt/zyplayer-doc && cd /opt/zyplayer-doc
第二步:编写 docker-compose.yml
创建 docker-compose.yml 文件:
yaml
version: '3.8'
services:
mysql:
image: mysql:8.0
container_name: zyplayer-mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: your_secure_password
MYSQL_DATABASE: zyplayer_doc
volumes:
- ./mysql-data:/var/lib/mysql
ports:
- "3306:3306"
zyplayer-doc:
image: zyplayer/zyplayer-doc:latest
container_name: zyplayer-doc
restart: always
depends_on:
- mysql
environment:
SPRING_DATASOURCE_URL: jdbc:mysql://mysql:3306/zyplayer_doc?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai
SPRING_DATASOURCE_USERNAME: root
SPRING_DATASOURCE_PASSWORD: your_secure_password
volumes:
- ./upload-files:/app/upload
ports:
- "8083:8083"
第三步:启动服务
bash
docker compose up -d
首次启动会自动拉取镜像并初始化数据库,整个过程大约 2-5 分钟(取决于网络速度),启动完成后,访问 http://你的服务器IP:8083 即可看到登录页面。
第四步:初始化配置
- 使用默认管理员账号登录(首次会在页面上提示初始密码)
- 进入系统设置,修改管理员密码
- 配置邮件服务(用于注册验证、通知提醒)
- 根据需要配置存储方式(本地磁盘 / 阿里云 OSS / MinIO 等)
- 创建第一个知识空间,开始使用
进阶配置
配置 Nginx 反向代理
生产环境建议使用 Nginx 做反向代理,启用 HTTPS:
nginx
server {
listen 443 ssl;
server_name doc.yourcompany.com;
ssl_certificate /etc/nginx/ssl/doc.yourcompany.com.pem;
ssl_certificate_key /etc/nginx/ssl/doc.yourcompany.com.key;
client_max_body_size 100m;
location / {
proxy_pass http://127.0.0.1:8083;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
配置外部数据库
如果已有 MySQL 实例,可以删掉 docker-compose.yml 中的 mysql 服务,直接把 SPRING_DATASOURCE_URL 改为外部数据库地址。
zyplayer-doc 同时支持 PostgreSQL 和达梦数据库,生产环境可根据团队技术栈灵活选择。
数据库自动备份
在宿主机上配置 cron 定时任务,每天凌晨自动备份数据库:
bash
# 编辑 crontab
crontab -e
# 添加每天凌晨 2 点的备份任务
0 2 * * * docker exec zyplayer-mysql mysqldump -uroot -pyour_secure_password zyplayer_doc > /opt/backup/zyplayer_doc_$(date +\%Y\%m\%d).sql
性能优化建议
- 上传文件使用对象存储(OSS/MinIO),避免本地磁盘成为瓶颈
- MySQL 配置调优:增加
innodb_buffer_pool_size、调整最大连接数 - 根据并发用户数调整 JVM 内存参数
部署后的第一步
知识库搭好之后,建议按以下顺序推进:
- 创建空间结构:按部门或项目划分空间,规划好目录层级
- 导入现有文档:用 CLI 工具批量导入已有的 Markdown、Word 等文档
- 配置权限体系:设置空间/目录/文档级别的访问权限,匹配组织架构
- 接入 AI 问答:配置大模型接口,让知识库支持自然语言检索
- 推广使用:在团队内发布使用指南,培养文档沉淀的习惯
常见问题
Q:Docker 部署需要什么 Linux 发行版?
A:支持所有主流 Linux 发行版(Ubuntu、CentOS、Debian 等),内核版本 3.10+ 即可。
Q:数据存在哪里?安全吗?
A:数据库数据存储在 mysql-data 目录,上传文件存储在 upload-files 目录,全部在宿主机本地,建议定期备份这两个目录。
Q:如何升级到新版本?
A:执行 docker compose pull && docker compose up -d,数据库会自动执行迁移脚本,无需手动干预。
Q:能用内网部署吗?
A:完全可以,Docker 部署不依赖外网(除了首次拉取镜像),适合内网环境,只需提前把镜像导入内网镜像仓库即可。
结语
Docker 部署把企业知识库的部署门槛从"需要运维工程师"降到了"会敲命令就行",对于中小团队来说,10 分钟就能拥有一个功能齐全、数据自主的私有化文档管理中心,先用起来,再根据需求逐步优化,知识的沉淀比完美规划更重要。