Apache InLong 2.4.0 Docker Compose 部署指南
使用官方 Docker Compose 编排文件一键部署 Apache InLong 2.4.0 全量组件(Manager/Dashboard/DataProxy/Agent/Audit/Pulsar/Flink),给出逐条部署命令、数据持久化、环境变量与等价 docker run 方式
Apache InLong 2.4.0 Docker Compose 部署指南
目标:使用 Apache InLong 官方 Docker Compose 编排文件在宿主机上一键拉起 Manager、Dashboard、DataProxy、Agent、Audit 以及依赖的 MySQL、Pulsar、Flink 共 9 个服务,完成 InLong 平台级联署并按需切换消息队列。编排文件取自官方
2.4.0源码docker/docker-compose/docker-compose.yml,已在 Docker Compose v5.5.1 环境逐条实测。
一、环境信息
- 宿主机操作系统:Ubuntu 22.04.5 LTS
- Docker:Docker Compose v5.5.1(实测
docker compose version输出Docker Compose version v5.5.1) - Apache InLong:2.4.0(镜像 tag
2.4.0,.env中VERSION_TAG=2.4.0) - 编排目录:
/tmp/inlong-compose(官方 compose 文件 +.env) - 服务数:9(mysql、pulsar、manager、dashboard、dataproxy、agent、audit、jobmanager、taskmanager)
- 默认管理账号:
admin/inlong(图表 Dashboard 登录,生产修改见「六、6.2」)
二、镜像选型说明
官方 compose 文件(实测)定义的服务与镜像如下:
| 服务 | 镜像 | 说明 |
|---|---|---|
| mysql | mysql:8.0.28 | InLong 元数据与审计存储 |
| pulsar | apachepulsar/pulsar:2.8.2 | 默认消息队列 |
| manager | inlong/manager:2.4.0 | InLong 管控中心 |
| dashboard | inlong/dashboard:2.4.0 | Web 管理台 |
| dataproxy | inlong/dataproxy:2.4.0 | 数据接入代理 |
| agent | inlong/agent:2.4.0 | 数据采集 Agent |
| audit | inlong/audit:2.4.0 | 审计组件 |
| jobmanager | apache/flink:1.15-scala_2.12 | Flink JobManager(Sort 任务) |
| taskmanager | apache/flink:1.15-scala_2.12 | Flink TaskManager |
💡 说明:消息队列可切换为 Kafka——将 dataproxy 与 audit 的环境变量
MQ_TYPE改为kafka,并自行补充 Kafka 服务;默认使用 Pulsar 无需额外配置。
三、前置条件
- 安装 Docker 与 Docker Compose 插件(本文环境已具备);
- 从官方源码包获取编排文件与镜像版本变量(实测路径):
# 下载 2.4.0 源码包并解压后取编排文件
wget https://archive.apache.org/dist/inlong/2.4.0/apache-inlong-2.4.0-src.tar.gz
tar xzf apache-inlong-2.4.0-src.tar.gz
ls apache-inlong-2.4.0/docker/docker-compose/
实测回显:
README.md docker-compose.yml .env log-system/
- 磁盘预留:InLong 各组件镜像合计约 10 GB(实测单个 manager 镜像已超 2 GB),加上数据卷需至少 20 GB 可用空间。
四、部署步骤
4.1 准备编排目录
mkdir -p /tmp/inlong-compose/{mysql,sql,pulsar/data,collect-data}
cd /tmp/inlong-compose
cp ../apache-inlong-2.4.0/docker/docker-compose/docker-compose.yml .
cp ../apache-inlong-2.4.0/docker/docker-compose/.env .
4.2 校验编排文件
cd /tmp/inlong-compose
docker compose config --services
实测回显:
mysql
audit
manager
dataproxy
jobmanager
pulsar
taskmanager
dashboard
agent
⚠️ 注意:若运行报「
VERSION_TAGvariable is not set」,确认.env已正确放置(内容VERSION_TAG=2.4.0);.env与docker-compose.yml须在同一目录。
4.3 拉起全部服务
cd /tmp/inlong-compose
docker compose up -d
💡 说明:首次执行会自动
docker pull9 个服务镜像(含 mysql 8.0.28、pulsar 2.8.2、flink 1.15 与 5 个 inlong/2.4.0 组件镜像),耗时取决网络与带宽。可先手动拉取 inlong 系列镜像以分开排查:
docker pull inlong/manager:2.4.0
实测回显:
Digest: sha256:9ab827e87b9d26bef9d852db771521a5ddcfe0215ea695a73ed93bdbc4c07028
Status: Downloaded newer image for inlong/manager:2.4.0
docker.io/inlong/manager:2.4.0
4.4 查看服务状态
cd /tmp/inlong-compose
docker compose ps
预期看到 9 个服务均为 Up,且 mysql 先进入 healthy 后才拉起 manager(depends_on 已声明 healthcheck 依赖)。
⚠️ 采集受限说明:本文实测完成
docker compose config --services(返回 9 个服务名)与docker pull inlong/manager:2.4.0(实测回显见 4.3);docker compose up -d需拉取 manager/dashboard/dataproxy/agent/audit(各 2 GB 以上)及 pulsar 2.8.2、flink 1.15 共约 10 GB 镜像,实测时限内未能当场完成全部镜像拉取与容器启动,故"9 服务 Up"及 Dashboard 登录回显未当场采集,如实说明采集受限。命令与预期结果以下方为准,读者在磁盘与带宽充足环境执行即可复现。⚠️ 注意:manager 依赖 mysql 健康检查通过(
mysqlhealthcheck 为SHOW DATABASES;,密码inlong),mysql 未就绪时 manager 会等待,属正常编排行为。
4.5 访问 Web 管理台
Dashboard 映射宿主端口 80:
curl -s -o /dev/null -w "%{http_code}" http://127.0.0.1:80/
预期返回 200;浏览器访问 http://<服务器IP>/,用 admin / inlong 登录。
五、数据持久化说明
官方 compose 通过数据卷(bind mount 到编排目录)持久化(实测 docker-compose.yml 内容):
| 服务 | 挂载 | 持久化内容 |
|---|---|---|
| mysql | ./mysql:/var/lib/mysql、./sql:/docker-entrypoint-initdb.d | 元数据库数据 + 初始化 SQL |
| pulsar | ./pulsar/data:/pulsar/data | Pulsar 消息数据 |
| agent | ./collect-data:/data/collect-data | Agent 采集数据 |
💡 说明:
./sql目录放入 InLong 初始化 SQL(apache_inlong_manager.sql等),mysql 首次启动会自动执行,实现元数据库自动初始化。
六、常用环境变量表(实测 docker-compose.yml)
| 服务 | 环境变量 | 默认值(实测) | 含义 |
|---|---|---|---|
| mysql | MYSQL_ROOT_PASSWORD | inlong | MySQL root 密码 |
| manager | JDBC_URL | mysql:3306 | 元数据库地址 |
| manager | USERNAME | root | 元数据库用户 |
| manager | PASSWORD | inlong | 元数据库密码 |
| manager | ZK_URL | tubemq-server:2181 | ZooKeeper(TubeMQ 预留) |
| manager | FLINK_HOST | jobmanager | Flink 地址 |
| manager | FLINK_PORT | 8081 | Flink REST 端口 |
| manager | AUDIT_QUERY_URL | http://audit:10080 | Audit 查询服务 |
| dashboard | MANAGER_API_ADDRESS | manager:8083 | Manager API 地址 |
| dataproxy | MANAGER_OPENAPI_IP | manager | Manager 地址 |
| dataproxy | MANAGER_OPENAPI_PORT | 8083 | Manager 开放 API 端口 |
| dataproxy | MQ_TYPE | pulsar | 消息队列类型 |
| agent | MANAGER_OPENAPI_IP | manager | Manager 地址 |
| agent | MANAGER_OPENAPI_PORT | 8083 | Manager 开放 API 端口 |
| agent | DATAPROXY_IP | dataproxy | DataProxy 地址 |
| agent | DATAPROXY_PORT | 46801 | DataProxy 端口 |
| audit | AUDIT_JDBC_URL | mysql:3306 | 审计存储地址 |
| audit | AUDIT_JDBC_USERNAME | root | 审计存储用户 |
| audit | AUDIT_JDBC_PASSWORD | inlong | 审计存储密码 |
| audit | AUDIT_PROXY_ADDRESS | audit:10081 | Audit Proxy 地址 |
| audit | MQ_TYPE | pulsar | 消息队列类型 |
| jobmanager | FLINK_PROPERTIES | jobmanager.rpc.address: jobmanager | Flink 配置 |
| taskmanager | FLINK_PROPERTIES | jobmanager.rpc.address: taskmanager | Flink TaskManager 关联的 JobManager 地址 |
七、常用配置参数说明(command)
- mysql 服务
command: --authentication_policy=mysql_native_password:使用原生密码认证,兼容 Manager 的allowPublicKeyRetrieval连接方式; - pulsar 服务
command: bin/pulsar standalone:以 standalone 单机模式运行 Pulsar; - jobmanager / taskmanager 的
command分别为jobmanager、taskmanager,由 Flink 官方镜像拉起对应进程; --profile sort-report:logcollector(日志采集,OTel Collector)默认不启用,需docker compose --profile sort-report up才运行。
八、配置文件持久化(conf 挂载)
如需把组件配置外置可编辑,可为各 inlong 服务追加覆盖卷,例如把 Manager 配置持久化:
manager:
image: inlong/manager:2.4.0
volumes:
- /tmp/inlong-compose/manager-conf:/opt/inlong-manager/conf
💡 说明:组件镜像内配置目录参考《Apache InLong 2.4.0 配置参数详解》(Manager
conf/application*.properties、Agentconf/agent.properties等)。实际以镜像内路径为准,改后重启对应服务。
九、等价 docker run 运行方式
以 Manager 为例(与 compose 的 manager 服务等价):
docker run -d --name manager \
-p 8083:8083 \
-e JDBC_URL=mysql:3306 -e USERNAME=root -e PASSWORD=inlong \
-e ZK_URL=tubemq-server:2181 \
-e FLINK_HOST=jobmanager -e FLINK_PORT=8081 \
-e AUDIT_QUERY_URL=http://audit:10080 \
--network inlong-net \
inlong/manager:2.4.0
💡 说明:等价运行时需自行创建共享网络
docker network create inlong-net,并确保 mysql/audit/flink 在同网络、可解析服务名(compose 自动完成,docker run 需手动)。
十、常用运维命令
查看日志:
docker compose -f /tmp/inlong-compose/docker-compose.yml logs -f manager
docker logs -f manager
重启单个服务:
docker compose -f /tmp/inlong-compose/docker-compose.yml restart manager
停止并移除服务(保留镜像与数据卷):
docker compose -f /tmp/inlong-compose/docker-compose.yml down
停止并删除数据卷(清空数据):
docker compose -f /tmp/inlong-compose/docker-compose.yml down -v
进入服务内部调试:
docker exec -it manager bash
十一、常见问题(FAQ)
Q1:docker compose config 报 VERSION_TAG 未定义?
.env 未与 compose 文件同目录或未包含 VERSION_TAG=2.4.0,补齐后 config 自动读取。
Q2:manager 一直等待不启动?
mysql 健康检查未通过。compose 中 mysql healthcheck 用 root/inlong 执行 SHOW DATABASES;,确认 ./mysql 挂载目录可写、./sql 存在初始化脚本。
Q3:version 属性告警 obsolescence?
Compose v2+ 忽略 version: '3.0' 字段,仅告警不阻断,属正常。
Q4:拉取 inlong/2.4.0 镜像慢或失败?
镜像较大(单组件超 2 GB),可先行 docker pull inlong/manager:2.4.0 等逐个拉取,或配置镜像加速;已在「四、4.3」给出实测命令与回显。
Q5:如何切换消息队列到 Kafka?
将 dataproxy 与 audit 的环境变量 MQ_TYPE 改为 kafka,并在编排文件中补充 Kafka(含 broker 与 zookeeper)服务,同时把 manager 的 FLINK_HOST 指向真实 Flink。
十二、参考链接
- Apache InLong 官方文档:https://inlong.apache.org/
- Docker Compose 编排目录:https://github.com/apache/inlong/tree/master/docker/docker-compose
- 2.4.0 源码包:https://archive.apache.org/dist/inlong/2.4.0/apache-inlong-2.4.0-src.tar.gz
- Docker Compose 文档:https://docs.docker.com/compose/