Apache DolphinScheduler Docker部署指南:从入门到生产环境
前言
Apache DolphinScheduler是一个开源的分布式工作流任务调度系统,具有可视化操作界面、丰富的任务类型支持和高可靠性等特点。本文将详细介绍如何使用Docker快速部署DolphinScheduler,涵盖从快速体验的单机模式到生产环境的分布式部署方案。
环境准备
在开始部署前,请确保系统已安装以下组件:
- Docker 1.13.1或更高版本
- Docker Compose 1.28.0或更高版本
建议为Docker分配至少4GB内存以获得更好的运行体验。
三种Docker部署方式
1. 单机模式快速体验
适合初次接触DolphinScheduler的用户快速了解系统功能:
$ DOLPHINSCHEDULER_VERSION=<版本号>
$ docker run --name dolphinscheduler-standalone-server \
-p 12345:12345 -p 25333:25333 \
-d apache/dolphinscheduler-standalone-server:"${DOLPHINSCHEDULER_VERSION}"
特点说明:
- 所有服务运行在单一容器中
- 使用H2内存数据库,容器停止后数据将丢失
- 仅包含核心服务,不支持Spark/Flink等需要外部环境的任务类型
- 默认端口:12345(Web UI)和25333(API)
适用场景:仅用于功能体验和学习,不建议生产环境使用。
2. Docker Compose完整部署
适合中小规模生产环境,各服务运行在独立容器中:
$ DOLPHINSCHEDULER_VERSION=<版本号>
$ tar -zxf apache-dolphinscheduler-"${DOLPHINSCHEDULER_VERSION}"-src.tar.gz
$ cd apache-dolphinscheduler-"${DOLPHINSCHEDULER_VERSION}"-src/deploy/docker
# 初始化数据库
$ docker-compose --profile schema up -d
# 启动所有服务
$ docker-compose --profile all up -d
部署特点:
- 自动创建PostgreSQL数据库(用户root/密码root,数据库dolphinscheduler)
- 自动部署ZooKeeper服务
- 各组件(Master/Worker/Api等)运行在独立容器
- 数据持久化存储,重启不丢失
配置建议:
- 生产环境应修改默认数据库密码
- 根据业务规模调整各服务资源配置
- 考虑添加数据备份机制
3. 使用已有PostgreSQL和ZooKeeper
适合已有基础设施环境的生产部署:
# 数据库初始化
$ docker run -d --name dolphinscheduler-tools \
-e DATABASE="postgresql" \
-e SPRING_DATASOURCE_URL="jdbc:postgresql://<数据库地址>:5432/<数据库名>" \
-e SPRING_DATASOURCE_USERNAME="<用户名>" \
-e SPRING_DATASOURCE_PASSWORD="<密码>" \
--net host \
apache/dolphinscheduler-tools:"${DOLPHINSCHEDULER_VERSION}" tools/bin/upgrade-schema.sh
# 分别启动各服务(示例为Master服务)
$ docker run -d --name dolphinscheduler-master \
-e DATABASE="postgresql" \
-e SPRING_DATASOURCE_URL="jdbc:postgresql://<数据库地址>:5432/<数据库名>" \
-e SPRING_DATASOURCE_USERNAME="<用户名>" \
-e SPRING_DATASOURCE_PASSWORD="<密码>" \
-e REGISTRY_ZOOKEEPER_CONNECT_STRING="<ZK地址>:2181" \
--net host \
apache/dolphinscheduler-master:"${DOLPHINSCHEDULER_VERSION}"
环境要求:
- PostgreSQL 8.2.15+
- ZooKeeper 3.8.0+
- 各服务节点间网络互通
优势:
- 复用现有数据库和协调服务
- 灵活配置各组件部署位置
- 便于水平扩展
系统访问与配置
部署完成后,可通过以下方式访问:
- 单机模式:http://localhost:12345/dolphinscheduler/ui
- 分布式部署:http://<API服务地址>:12345/dolphinscheduler/ui
默认登录凭证:
- 用户名:admin
- 密码:dolphinscheduler123
环境变量配置
DolphinScheduler支持通过环境变量配置各项参数,常见配置包括:
-
数据库相关:
DATABASE: 数据库类型(postgresql/mysql等)SPRING_DATASOURCE_URL: JDBC连接地址SPRING_DATASOURCE_USERNAME: 数据库用户名SPRING_DATASOURCE_PASSWORD: 数据库密码
-
ZooKeeper相关:
REGISTRY_ZOOKEEPER_CONNECT_STRING: ZooKeeper连接地址
-
其他配置:
SPRING_JACKSON_TIME_ZONE: 时区设置(建议UTC)MASTER_EXEC_THREADS: Master执行线程数WORKER_EXEC_THREADS: Worker执行线程数
生产环境建议
-
数据库:
- 使用高性能数据库如PostgreSQL或MySQL
- 配置定期备份策略
- 根据业务规模优化数据库参数
-
高可用:
- Master/Worker部署多个实例
- 使用VIP或负载均衡访问API服务
- 监控各服务健康状态
-
性能调优:
- 根据任务量调整各服务线程池大小
- 优化ZooKeeper配置
- 考虑使用外部存储如HDFS存放资源文件
-
安全:
- 修改默认管理员密码
- 启用HTTPS访问
- 配置网络访问控制
常见问题处理
-
容器启动失败:
- 检查日志:
docker logs <容器名> - 确认端口未被占用
- 验证数据库连接信息
- 检查日志:
-
性能问题:
- 增加Master/Worker实例数
- 优化数据库查询
- 检查网络延迟
-
任务执行失败:
- 验证Worker节点执行环境
- 检查资源文件路径
- 查看任务详细日志
通过以上Docker部署方案,用户可以根据实际需求选择适合的部署方式,从快速体验到生产环境部署都能得到良好支持。建议初次使用者从单机模式开始,熟悉系统后再逐步过渡到分布式生产部署。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



