A Guide to Deploying Dolphinscheduler With Docker

10 Jul 2024

Docker deployment aims to start and deploy Apache Dolphinscheduler services quickly in a container.


  • Docker

Single-node Deployment of Dolphinscheduler Using Containers

  1. Please download the source package apache-dolphinscheduler — src.tar.gz from Download

  • First, ensure the ports required for service startup are not occupied:

port_list=(12345 25333 5432)
for port in ${port_list[@]}; do
  netstat -an | grep $port
# No output means the ports are not occupied

  • If the ports are occupied:

vim docker-compose.yml

  • Find dolphinscheduler-api, and modify the ports.
# Default content
   - "12345:12345"
   - "25333:25333"

# Modify as needed, e.g.:
   - "22345:12345"
   - "35333:25333"

2. Install Postgresql and Dolphinscheduler services:

tar -zxvf apache-dolphinscheduler-<version>-src.tar.gz
cd apache-dolphinscheduler-<version>-src/deploy/docker
# Initialize database, etc.
docker-compose --profile schema up -d 
# Start all services
docker-compose --profile all up -d

Distributed Deployment of Dolphinscheduler Using Containers

  1. After modifying the .env file in the deploy folder, copy it to other servers.

  2. On other servers, where you want to start Dolphinscheduler services (e.g., Dolphinscheduler-api), execute the startup command:

docker-compose up -d dolphinscheduler-api

Using Non-containerized Postgresql and Zookeeper

  1. Modify environment variables:

# Enter the Deploy directory
cd apache-dolphinscheduler-<version>-src/deploy/docker
vim .env
## Modify the following contents
# Database name
# Database connection address
# Zookeeper connection address
# Username for connecting to the database
# Password for connecting to the database

  1. Initialization:

docker-compose --profile schema up -d

  1. Start Dolphinscheduler services:
# Start the worker service
docker-compose up -d dolphinscheduler-worker
# Start the master service
docker-compose up -d dolphinscheduler-master
# Start the alert service
docker-compose up -d dolphinscheduler-alert
# Start the API service
docker-compose up -d dolphinscheduler-api