Docker Compose Deployment
Before We Start
Who Should Read This Guide?
- Newcomers to qData who want to quickly experience its features
- Users who don't want to deal with complex environment configurations or frontend builds
- Users who prefer a "one-click start" for a hassle-free full-platform experience
We’ve prepared a ready-to-use deployment package for you, including:
- ✅ Frontend static resources (pre-built
dist
folder) - ✅ DolphinScheduler (no additional installation required)
- ✅ Hadoop ecosystem (HDFS + YARN)
- ✅ Flink 1.12 and Spark 3.3.0 (already extracted)
- ✅ Pre-configured
.env
environment variable file - ✅ Complete directory structure and image packages (no manual downloads required)
No need to manually install dependencies, build the frontend, or configure complex settings. Just extract and run the script—the entire big data platform and qData will be up and running!
Even beginners can easily set it up and experience qData in 10 minutes!
Step 1: Install Docker and Docker Compose
qData runs via Docker containers, so you must first install Docker and Docker Compose.
- Recommended versions:
- Docker: ≥ 19.03
- Docker Compose: ≥ 1.28
Download and install Docker Desktop.
After installation, Docker Compose is automatically included—no additional setup needed.
The deployment package includes offline installers and installation scripts. Run the following:
# Enter Docker installation directory
cd ~/qData/docker-install
# Install Docker components
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
# Add current user to docker group (optional, to avoid sudo)
sudo usermod -aG docker $USER
newgrp docker
# Verify installation
sudo docker -v
# Example output: Docker version 24.0.7, build afdd5
Install Docker Compose:
# Grant execute permission and move to system path
sudo chmod +x docker-compose
sudo mv docker-compose /usr/local/bin/docker-compose
# Verify installation
sudo docker-compose -v
# Example output: Docker Compose version v2.20.2
Step 2: Download Deployment Package
🔗 Baidu Pan (Baidu Cloud Disk): https://pan.baidu.com/s/1QI0rWL8i9G-qYJFHTh19zA
🔑 Extraction Code: Join the QQ group to get the code
[Join QQ Group](https://qm.qq.com/q/Qz5NJut20y)
[Join QQ Group](https://qm.qq.com/q/Bpml33lTWK)
After downloading, extract the package (e.g., to
~/qData
).
Step 3: Load qData Images
After extracting the package, go to the images
folder and run the following commands to load images and verify successful import:
cd ~/qData(images)/images
# Load big data-related images
sudo docker load -i bigdata-images.tar
# Load main qData image (x.x.x is the version number)
sudo docker load -i qdata-x.x.x.tar
# View local image list to confirm successful import
sudo docker images
Expected output should include entries like:
REPOSITORY TAG IMAGE ID CREATED SIZE
qiantong/qdata-quality 1.0.5 0e3b87492cd8 4 hours ago 734MB
qiantong/qdata 1.0.5 59cf25909087 4 hours ago 760MB
apache/dolphinscheduler-tools latest 19eddd1bef1d 4 days ago 402MB
apache/dolphinscheduler-worker latest fa746d141ae2 4 days ago 618MB
apache/dolphinscheduler-master latest 1f2294402261 5 days ago 573MB
apache/dolphinscheduler-alert-server latest a8f4934125fb 5 days ago 423MB
apache/dolphinscheduler-api latest c3f6757463c7 5 days ago 621MB
eclipse-temurin 8-jdk 139cd3f3ddf9 4 weeks ago 274MB
dm8 dm8_20250506_x86_rh7_64 54dae26a70ed 8 weeks ago 1.99GB
redis 6-alpine b7f611844a19 8 weeks ago 30.2MB
rabbitmq 3.12-management c48161165ad4 11 months ago 247MB
mongo 4.4 d896c071ac69 18 months ago 427MB
bitnami/zookeeper 3.7.1 3ab0e8f032ab 23 months ago 510MB
apache/hadoop 3.3.6 3d418cee563e 2 years ago 1.66GB
bitnami/postgresql 15.2.0 52e3f8496daf 2 years ago 273MB
nginx 1.24.0 6c0218f16876 2 years ago 142MB
bitnami/spark 3 15018b527afc 3 years ago 2.54GB
If images are not displayed, check the
.tar
file paths and ensure files are intact.
Step 4: Start qData
Inside the deployment package is a docker.zip
archive. Extract it first.
After extraction, navigate to the ~/qData/docker
directory (you'll find many .yml
files here).
4.1 Initialize Database (Required for First-Time Run)
sudo docker-compose --profile schema up -d
⚠️ Note: Entrypoint Script Permission Issues
If the first command sudo docker-compose --profile schema up -d
fails due to permission or Windows line-ending issues, run the following commands:
# Grant script permissions and fix line endings
cd ~/qData(location where package was extracted)
sudo chmod -R 755 docker
sudo chown -R $USER:$USER ./docker
sed -i 's/\r$//' ./database/dm8/entrypoint.sh
# Verify permissions
ls -l ./database/dm8/entrypoint.sh
# Should show: -rwxr-xr-x
# Run again
sudo docker-compose --profile schema up -d
4.2 Start qData and All Dependencies
sudo docker-compose --profile all up -d
4.3 Local Source Code Mode (Alternative)
# Skip steps 4.1 and 4.2 above
docker-compose --profile local up -d
⚠️ Note: Port Conflicts
If sudo docker-compose --profile all up -d
reports port conflicts:
- Close the processes occupying those ports on your server based on the error message;
- Or modify the
*.yaml
files in the deployment package to comment out or remove port mappings (except port 80)—this won’t affect internal container operations.
4.4 Other Common Commands
View status of all services:
sudo docker-compose --profile all ps
Pause all qData services (data preserved):
sudo docker-compose --profile all stop
Restart all services:
sudo docker-compose --profile all restart
Shut down completely and remove data (restore to default environment):
sudo docker-compose --profile all down
sudo docker-compose --profile schema down
Start middleware required for local source mode:
docker-compose --profile local up -d
⚠️
down
removes all data. Usestop
if you wish to preserve data.
Deployment Complete! 🎉
After deployment, access the following URLs:
🌐 qData Data Mid-Platform
http://< server-IP >:80
Username:admin
Password:qData123
📅 Scheduler: DolphinScheduler
http://< server-IP >:12345/dolphinscheduler/ui/home
Username:admin
Password:dolphinscheduler123
⚡ Spark Dashboard
http://< server-IP >:8080/
🔑 Replace
<server-IP>
with your server's public or private IP address.
💡 Tips
- After initial startup, wait 1–2 minutes for all containers to initialize.
- Use
docker ps
to check container status. - If you can't access the services, verify that the server firewall allows port
80
.