Apache DolphinScheduler Docker部署完全指南
前言
Apache DolphinScheduler是一个开源的分布式工作流任务调度系统,具有可视化操作界面、丰富的任务类型支持、高可靠性和高扩展性等特点。本文将详细介绍如何使用Docker容器技术快速部署DolphinScheduler,帮助开发者快速搭建开发测试环境或生产环境。
环境准备
在开始部署前,请确保您的系统满足以下要求:
- Docker引擎版本1.13.1或更高
- Docker Compose版本1.28.0或更高
- 建议系统内存不少于4GB(生产环境建议8GB以上)
三种部署方式对比
DolphinScheduler提供了三种Docker部署方式,适用于不同场景:
| 部署方式 | 适用场景 | 特点 | 是否适合生产环境 | |---------|---------|------|---------------| | standalone-server镜像 | 快速体验 | 单进程运行,使用H2内存数据库 | 否 | | docker-compose | 完整功能体验 | 多容器独立运行,使用PostgreSQL持久化存储 | 是 | | 自定义基础服务 | 已有基础设施 | 复用现有PostgreSQL和ZooKeeper | 是 |
详细部署步骤
1. 使用standalone-server镜像快速体验
这是最简单的部署方式,适合初次接触DolphinScheduler的用户快速了解系统功能。
# 设置DolphinScheduler版本变量
DOLPHINSCHEDULER_VERSION=<版本号>
# 启动standalone-server容器
docker run --name dolphinscheduler-standalone-server \
-p 12345:12345 \
-p 25333:25333 \
-d apache/dolphinscheduler-standalone-server:"${DOLPHINSCHEDULER_VERSION}"
注意事项:
- 此方式使用H2内存数据库,容器停止后数据会丢失
- 仅包含核心功能,部分任务插件和告警组件需要额外配置
- 所有服务运行在单个进程中,不适合生产环境
2. 使用docker-compose部署完整服务
这是推荐的部署方式,适合需要完整功能体验的场景。
# 下载并解压源码包
DOLPHINSCHEDULER_VERSION=<版本号>
tar -zxf apache-dolphinscheduler-"${DOLPHINSCHEDULER_VERSION}"-src.tar.gz
# 进入docker部署目录
cd apache-dolphinscheduler-"${DOLPHINSCHEDULER_VERSION}"-src/deploy/docker
# 初始化数据库结构
docker-compose --profile schema up -d
# 启动所有服务
docker-compose --profile all up -d
系统架构:
- 使用PostgreSQL作为元数据库
- ZooKeeper作为服务注册中心
- 各服务独立运行在不同容器中
性能优化建议:
- 为Docker分配足够内存(建议4GB以上)
- 生产环境建议将数据库数据目录挂载到宿主机
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
# 启动各服务组件
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="<ZooKeeper地址>:2181" \
--net host \
apache/dolphinscheduler-master:"${DOLPHINSCHEDULER_VERSION}"
# 类似方式启动worker、api、alert-server等服务
配置说明:
--net host
使容器使用主机网络,简化网络配置- 各环境变量对应application.yaml中的配置项
- 确保数据库用户有足够的权限
系统访问与登录
部署完成后,通过以下方式访问系统:
- 访问地址:http://<服务器IP>:12345/dolphinscheduler/ui
- 默认用户名:admin
- 默认密码:dolphinscheduler123
安全建议:
- 首次登录后立即修改默认密码
- 生产环境建议配置HTTPS访问
- 根据实际需求创建不同权限的用户
常见问题解答
Q:如何查看服务是否正常启动?
A:可以使用docker ps
查看容器运行状态,或使用docker logs <容器名>
查看日志。
Q:如何升级版本?
A:建议先备份数据库,然后停止旧版本容器,使用新版本镜像重新部署。
Q:如何配置邮件告警?
A:需要修改alert-server的环境变量,配置SMTP服务器相关信息。
总结
本文详细介绍了Apache DolphinScheduler的三种Docker部署方式,从快速体验到生产环境部署都有涵盖。在实际应用中,建议根据业务需求选择合适的部署方式,并做好相应的性能优化和安全配置。对于生产环境,推荐使用docker-compose方式或自定义基础服务方式部署,确保服务的稳定性和数据的持久性。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考