DataHub GMS Image 是 DataHub 数据目录平台的核心服务镜像,封装了 General Metadata Service (GMS)。GMS 作为 DataHub 的元数据管理中枢,负责元数据的存储、检索、索引、变更处理及 API 服务,是连接数据生产者、消费者与数据资产的关键组件。
主要用途:
从 Docker Hub 或私有仓库拉取镜像:
bashdocker pull acryldata/datahub-gms:latest # ***镜像(稳定版) # 或指定版本:docker pull acryldata/datahub-gms:v0.12.0
最简示例(需提前启动依赖服务):
bashdocker run -d \ --name datahub-gms \ -p 8080:8080 \ -e DATAHUB_DB_HOST=mysql-host \ -e DATAHUB_DB_PORT=3306 \ -e DATAHUB_DB_USERNAME=root \ -e DATAHUB_DB_PASSWORD=password \ -e DATAHUB_DB_NAME=datahub \ -e DATAHUB_ELASTICSEARCH_URI=[***] \ -e DATAHUB_KAFKA_BOOTSTRAP_SERVERS=kafka:9092 \ acryldata/datahub-gms:latest
参数说明:
-p 8080:8080:映射 GMS REST API 端口-e):配置依赖服务连接信息(见 4.5 节详细说明)推荐通过 docker-compose 整合依赖服务,简化部署:
yamlversion: '3.8' services: # GMS 服务 datahub-gms: image: acryldata/datahub-gms:latest container_name: datahub-gms restart: always ports: - "8080:8080" environment: # 数据库配置 DATAHUB_DB_HOST: mysql DATAHUB_DB_PORT: 3306 DATAHUB_DB_USERNAME: datahub DATAHUB_DB_PASSWORD: datahub DATAHUB_DB_NAME: datahub # Elasticsearch 配置 DATAHUB_ELASTICSEARCH_URI: [***] DATAHUB_ELASTICSEARCH_INDEX_NAME: datahub_usage_event # Kafka 配置 DATAHUB_KAFKA_BOOTSTRAP_SERVERS: kafka:9092 DATAHUB_METADATA_CHANGE_LOG_KAFKA_TOPIC_NAME: metadata-change-log # 日志配置 LOG_LEVEL: INFO depends_on: mysql: condition: service_healthy elasticsearch: condition: service_healthy kafka: condition: service_started # 依赖服务:MySQL mysql: image: mysql:8.0 container_name: datahub-mysql environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: datahub MYSQL_USER: datahub MYSQL_PASSWORD: datahub ports: - "3306:3306" volumes: - mysql-data:/var/lib/mysql healthcheck: test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "-u$datahub", "-p$datahub"] interval: 10s timeout: 5s retries: 5 # 依赖服务:Elasticsearch elasticsearch: image: elasticsearch:7.17.0 container_name: datahub-elasticsearch environment: - discovery.type=single-node - xpack.security.enabled=false - "ES_JAVA_OPTS=-Xms512m -Xmx512m" ports: - "9200:9200" volumes: - es-data:/usr/share/elasticsearch/data healthcheck: test: ["CMD", "curl", "-f", "http://localhost:9200/_cluster/health"] interval: 10s timeout: 5s retries: 5 # 依赖服务:Kafka(含 Zookeeper) zookeeper: image: confluentinc/cp-zookeeper:7.0.0 container_name: datahub-zookeeper environment: ZOOKEEPER_CLIENT_PORT: 2181 ports: - "2181:2181" kafka: image: confluentinc/cp-kafka:7.0.0 container_name: datahub-kafka depends_on: - zookeeper environment: KAFKA_BROKER_ID: 1 KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1 ports: - "9092:9092" volumes: mysql-data: es-data:
启动命令:
bashdocker-compose up -d
| 环境变量名 | 描述 | 示例值 |
|---|---|---|
DATAHUB_DB_HOST | MySQL 主机地址 | mysql 或 192.168.1.100 |
DATAHUB_DB_PORT | MySQL 端口 | 3306 |
DATAHUB_DB_USERNAME | MySQL 用户名 | datahub |
DATAHUB_DB_PASSWORD | MySQL 密码 | datahub |
DATAHUB_DB_NAME | MySQL 数据库名 | datahub |
DATAHUB_ELASTICSEARCH_URI | Elasticsearch 地址 | [***] |
DATAHUB_ELASTICSEARCH_INDEX_NAME | 元数据索引名 | datahub_metadata |
DATAHUB_KAFKA_BOOTSTRAP_SERVERS | Kafka 地址列表 | kafka:9092 或 kafka1:9092,kafka2:9092 |
DATAHUB_METADATA_CHANGE_LOG_KAFKA_TOPIC_NAME | 元数据变更日志主题 | metadata-change-log |
LOG_LEVEL | 日志级别(DEBUG/INFO/WARN/ERROR) | INFO |
SERVER_PORT | GMS 服务端口 | 8080(默认) |
MAX_HEAP_SIZE | JVM 堆内存上限 | 2g(默认) |
为避免容器重启导致数据丢失,需挂载以下目录:
bashdocker run -d \ ... -v /path/on/host/gms/logs:/app/logs \ # 日志持久化 -v /path/on/host/gms/config:/app/config # 自定义配置文件(如需) ...
GMS 内置健康检查接口,可通过以下命令验证服务状态:
bashcurl -f http://localhost:8080/actuator/health || echo "GMS 服务异常"
model.json 至 /app/config/model.jsonJAVA_OPTS 环境变量设置,如 -e JAVA_OPTS="-Xms1g -Xmx4g"DATAHUB_ELASTICSEARCH_USE_SSL=true 及证书路径docker-compose 中服务名是否与环境变量一致(如 DATAHUB_DB_HOST=mysql 需与 MySQL 服务名匹配)metadata-change-log 存在且可写MAX_HEAP_SIZE 或检查数据库/Elasticsearch 性能来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429