Docker Compose 部署
说在前面
谁适合看这份指南?
- 熟悉 Docker Compose 基本命令的用户
- 需要手动选择 DM8/MySQL 或不同启动模式的用户
- 需要查看具体 Compose 命令进行运维或排障的用户
使用前请确认
- 本教程面向具备 Docker 和 Docker Compose 基础知识的使用者,需要能够看懂常用命令、容器状态和基本报错信息。
- 部署过程需要联网下载 Docker 镜像,请确保部署机器(或 Docker Desktop)能够正常访问镜像仓库,并有稳定的网络环境。
- 中国大陆网络环境下,请提前为 Docker 配置可用的国内镜像加速地址。镜像地址可使用所在云服务商或组织提供的加速服务,配置后请先确认可以正常拉取镜像。
Docker 镜像支持双架构
本部署包使用的 Docker 镜像同时支持 amd64(x86_64) 和 arm64 架构。拉取镜像时,Docker 会根据当前主机的 CPU 架构自动选择对应版本,无需手动切换镜像标签。
我们已经为你准备好“开箱即用”的完整部署包,包括:
- ✅ 前端静态资源(打包好的
dist文件夹) - ✅ DolphinScheduler 调度器(无需额外安装)
- ✅ Hadoop 全家桶(HDFS + YARN)
- ✅ Spark 3.5.6(已解压)
- ✅ 预设
.env环境变量文件 - ✅ 完整的目录结构与 Docker Compose 配置
解压部署包后,可以根据数据库类型和使用场景手动执行 Docker Compose 命令。
Docker 镜像中已安装 Python 3,宿主机无需单独安装 Python。
部署流程
选择你的操作系统,然后按照对应步骤操作。
第 1 步:安装 Docker 和 Docker Compose
qData 通过 Docker 容器运行,必须先安装 Docker 和 Docker Compose。
- 推荐版本:
- Docker:≥ v20.10
- Docker Compose:≥ v2.20.2
docker compose 与 docker-compose
docker compose是当前推荐的 Docker Compose V2 命令。docker-compose是独立安装的 Docker Compose V1 旧命令。- 本教程统一使用
docker compose。如果环境中只有docker-compose,可将教程中的docker compose替换为docker-compose,但建议升级到 Compose V2。
macOS
直接下载安装 Docker Desktop。安装完成后,Docker Compose 已自动包含,无需额外安装。
Linux(Ubuntu 18.04+)
部署包中已附带离线安装包和安装脚本,可直接运行:
# 进入 Docker 安装包目录
cd ~/qData/docker-install
# 安装 Docker 组件
sudo dpkg -i containerd.io_1.6.9-1_amd64.deb docker-ce_24.0.7-1~ubuntu.20.04~focal_amd64.deb docker-ce-cli_24.0.7-1~ubuntu.20.04~focal_amd64.deb docker-compose-plugin_2.6.0~ubuntu-focal_amd64.deb
# 将当前用户加入 docker 用户组(免 sudo 可选)
sudo usermod -aG docker $USER
newgrp docker
# 验证安装
sudo docker -v
# 输出示例:Docker version 24.0.7, build afdd5安装 Docker Compose:
# 赋予执行权限并安装为 Docker CLI 插件
sudo chmod +x docker-compose
sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo mv docker-compose /usr/local/lib/docker/cli-plugins/docker-compose
# 验证安装
sudo docker compose version
# 输出示例:Docker Compose version v2.20.2第 2 步:部署包下载地址
🔗 百度网盘:https://pan.baidu.com/s/1sKgeBnMZmRnIr42_pVHmiw
🔑 提取码:加入 QQ 交流群后,在群文件中查看。 👉 点此加入 QQ 交流群
下载后请解压部署包
第 3 步:启动 qData
部署包解压后会直接得到一个 docker 文件夹。
进入该 docker 文件夹(里面会有多个 .yml 文件)后再执行后续命令。
3.1 使用 MySQL 作为主库
⚠️ 提示:若使用 达梦数据库(DM8),请跳过此步骤。
步骤 1:进入安装目录
cd ~/(安装包解压位置)步骤 2:修改 .env 文件
sudo vi .env找到以下配置,将 dm8 改为 mysql:
# 数据库类型,可选值:dm8 或 mysql
DB_TYPE=mysql3.2 初始化数据库(首次运行必做)
sudo docker compose --profile schema up -d
💡 如果使用 **MySQL** 作为主库,请执行:
sudo docker compose -f docker-compose-mysql.yml --profile schema up -d⚠️ 注意:entrypoint.sh文件权限问题
首次执行命令 sudo docker compose --profile schema up -d 如果报错权限、Win换行符问题。可依次执行以下命令:
# 给脚本加权限并修复换行
cd ~/qData(部署包解压位置)
sudo chmod -R 755 docker
sudo chown -R $USER:$USER ./docker
sed -i 's/\r$//' ./database/dm8/entrypoint.sh
sed -i 's/\r$//' ./database/dm8/entrypoint-arm64.sh
# 验证权限
ls -l ./database/dm8/entrypoint.sh
# 应为:-rwxr-xr-x
# 再次运行
sudo docker compose --profile schema up -d
💡 如果使用 **MySQL** 作为主库,请执行:
sudo docker compose -f docker-compose-mysql.yml --profile schema up -d3.3 启动 qData
根据验证需求,选择轻量化模式或全量模式启动。
轻量化模式(light)
如果只需快速部署和功能验证,可以不启动 DolphinScheduler 和 Spark:
sudo docker compose --profile light up -d
💡 如果使用 **MySQL** 作为主库,请执行:
sudo docker compose -f docker-compose-mysql.yml --profile light up -d全量模式(all)
如果需要使用完整依赖服务,继续使用 all 模式:
sudo docker compose --profile all up -d
💡 如果使用 **MySQL** 作为主库,请执行:
sudo docker compose -f docker-compose-mysql.yml --profile all up -d3.4 启动演示数据(可选)
如果需要使用内置数据源进行验证,可单独启动 demo 模式。demo 独立于 all 模式:
sudo docker compose --profile demo up -d
💡 如果使用 **MySQL** 作为主库,请执行:
sudo docker compose -f docker-compose-mysql.yml --profile demo up -d3.5 本地源码启动
# 上方的步骤4.1及4.2都无需执行
docker compose --profile local up -d
💡 如果使用 **MySQL** 作为主库,请执行:
sudo docker compose -f docker-compose-mysql.yml --profile all up -d (待适配)⚠️ 注意:端口占用问题
运行 sudo docker compose --profile all up -d 时如果提示端口被占用:
- 根据报错提示,关闭服务器上占用对应端口的进程;
- 或者修改部署包中的
*.yaml配置,将除80端口外的其他端口映射注释或删除(不影响容器内部运行)。
5.5 其他常用命令
⚠️ 提示:
以下命令以all模式为例。如果启动的是轻量化模式,请将all替换为light。demo模式需要单独管理。如果使用了自定义的
docker-compose-xxx.yml文件,所有启动命令都需要在docker compose后面追加-f docker-compose-xxx.yml。例如:sudo docker compose -f docker-compose-mysql.yml --profile all up -d
查看所有服务运行状态:
sudo docker compose --profile all ps暂停 qData 所有服务(数据不丢):
sudo docker compose --profile all stop重启所有服务:
sudo docker compose --profile all restart完全关闭并删除数据(恢复默认环境):
sudo docker compose --profile all down
sudo docker compose --profile schema down本地源码启动所需中间件
docker compose --profile local up -d⚠️
down会清空数据,如果想保留数据,只用stop即可。
部署完成!🎉
部署完成后可通过以下地址访问:
🌐 qData 数据中台
http://<服务器IP>:80
账号:admin
密码:qData123📅 调度器 DolphinScheduler
http://<服务器IP>:12345/dolphinscheduler/ui/home
账号:admin
密码:dolphinscheduler123
⚠️ DolphinScheduler 只在
all模式下启动。
🔑
<服务器IP>替换成你的服务器公网或内网 IP。
💡 重要提醒
- 建议首次启动后 稍等 1-2 分钟 ,让所有容器初始化完毕。
- 可以通过
docker ps查看容器状态。 - 如果访问不了,检查服务器防火墙是否开放
80端口。
第 1 步:安装 Docker Desktop
下载并安装 Docker Desktop。安装完成后,Docker Compose 会自动包含在 Docker Desktop 中。
打开 PowerShell 验证安装:
docker --version
docker compose version推荐版本:
- Docker:≥ v20.10
- Docker Compose:≥ v2.20.2
第 2 步:下载部署包
🔗 百度网盘:https://pan.baidu.com/s/1sKgeBnMZmRnIr42_pVHmiw
🔑 提取码:加入 QQ 交流群后,在群文件中查看。👉 点此加入 QQ 交流群
下载后解压部署包,解压完成后会得到一个 docker 文件夹。
第 3 步:启动 qData
3.1 打开部署目录
- 在文件资源管理器中打开解压后的
docker文件夹。 - 确认目录中包含
.env和多个docker-compose*.yml文件。 - 在目录空白处右键单击,选择“在终端中打开”;也可以在资源管理器地址栏输入
powershell后回车。
后续命令均在该 PowerShell 窗口中执行。
3.2 选择数据库
默认使用 达梦数据库(DM8),使用 DM8 时无需修改 .env。
如果使用 MySQL:
- 在文件资源管理器中右键单击
.env。 - 选择记事本或其他文本编辑器打开。
- 将
DB_TYPE改为mysql并保存:
# 数据库类型,可选值:dm8 或 mysql
DB_TYPE=mysql3.3 初始化数据库(首次运行必做)
DM8 和 MySQL 只需执行对应的一条命令。
使用 DM8
docker compose --profile schema up -d使用 MySQL
docker compose -f docker-compose-mysql.yml --profile schema up -d3.4 启动 qData
根据使用场景选择轻量化模式或全量模式。
轻量化模式(light)
轻量化模式不启动 DolphinScheduler 和 Spark,适合快速部署和功能验证。
# DM8
docker compose --profile light up -d
# MySQL(使用 MySQL 时只执行这一条)
docker compose -f docker-compose-mysql.yml --profile light up -d全量模式(all)
全量模式会启动完整的依赖服务。
# DM8
docker compose --profile all up -d
# MySQL(使用 MySQL 时只执行这一条)
docker compose -f docker-compose-mysql.yml --profile all up -d3.5 启动演示数据(可选)
demo 模式独立于 all 模式,需要单独启动:
# DM8
docker compose --profile demo up -d
# MySQL(使用 MySQL 时只执行这一条)
docker compose -f docker-compose-mysql.yml --profile demo up -d3.6 为本地源码启动中间件
如果要在 Windows 宿主机上运行 qData 源码,只需启动 local 模式,无需执行 3.3 和 3.4:
docker compose --profile local up -d⚠️ MySQL 的
local模式暂未适配。
3.7 其他常用命令
以下命令以 all 模式为例。如果使用 light 或 demo 模式,请替换对应的 profile。
查看运行状态:
docker compose --profile all ps暂停所有服务(保留容器和数据):
docker compose --profile all stop重启所有服务:
docker compose --profile all restart停止并移除容器和网络:
docker compose --profile all down
docker compose --profile schema down如果使用 MySQL,请在
compose后添加-f docker-compose-mysql.yml。例如:docker compose -f docker-compose-mysql.yml --profile all ps。
第 4 步:访问 qData
部署完成后,可以通过以下地址访问:
- qData 数据中台:
http://localhost:80- 账号:
admin - 密码:
qData123
- 账号:
- DolphinScheduler:
http://localhost:12345/dolphinscheduler/ui/home- 账号:
admin - 密码:
dolphinscheduler123
- 账号:
DolphinScheduler 只在
all模式下启动。如果需要从其他设备访问,请将localhost替换为 Windows 主机 IP,并确认 Windows 防火墙已放行对应端口。
重要提醒
- 首次启动后请等待 1-2 分钟,让所有容器完成初始化。
- 可以使用
docker ps查看容器状态。 - 如果无法启动,请先确认 Docker Desktop 正在运行,并检查报错中的端口是否已被占用。
