OpenMetadata 本地 Docker 部署:一条命令到登录界面的最短路径
2026/9/11 13:40:28 网站建设 项目流程

OpenMetadata 本地 Docker 部署:一条命令到登录界面的最短路径

【免费下载链接】OpenMetadataThe Open Context Layer for Data and AI , OpenMetadata is the open platform for building trusted data context and business semantics for humans, AI assistants, and agents.项目地址: https://gitcode.com/GitHub_Trending/op/OpenMetadata

想把 OpenMetadata 在本机跑起来看看?这篇内容就解决一件事:装好 Docker 之后,怎么用 Docker Compose(用一份 YAML 文件同时编排多个容器的工具)把它拉起来,直到浏览器里出现登录页。全程不编译代码,不碰源码。

部署前自检:三件事确认到位

开始之前,把这张清单过一遍,后面 90% 的报错都能提前避开:

  • docker --version有正常输出,版本至少 20.10.0
  • docker compose version有正常输出,版本至少 v2.1.1
  • Docker 可用内存 ≥ 6GB、CPU ≥ 4 核、空闲磁盘 ≥ 10GB(Elasticsearch 是内存大户,内存不够它先崩)
  • 本机 8585、8080、9200、3306 端口没被其他服务占用

📌 Windows 用户:建议走 WSL2 + Ubuntu 20.04 + Docker Desktop 这条路径。如果之后在 WSL2 里遇到文件权限相关的诡异问题,编辑/etc/wsl.conf,加入[automount]段落并配置options = "metadata,case=force",然后重启 WSL2。

资源分配在 Docker Desktop 的 Settings → Resources → Advanced 里调:内存拉到 6GB 以上,CPU 4 核以上,保存后 Docker 会自行重启生效。

这张图先放在这里:它画的是 OpenMetadata 内部"数据源 → 连接器 → 上下文图谱 → 消费端"的流转关系,也是你部署完四个容器之后各自在忙什么的一张全景图。

从第一条命令到浏览器看到界面

先选数据库。仓库docker/development/目录下直接躺着你需要的两份编排文件:

选项适用场景compose 文件启动命令
MySQL求稳、资料最多的默认选项docker/development/docker-compose.ymldocker compose -f docker/development/docker-compose.yml up --detach
PostgreSQL团队技术栈是 PG,想本地和生产一致docker/development/docker-compose-postgres.ymldocker compose -f docker/development/docker-compose-postgres.yml up --detach

两条路径的区别只有两处:PostgreSQL 版本把 MySQL 容器换成openmetadata_postgresql(映射 5432 端口),把 Elasticsearch 换成 OpenSearch。主服务、端口、登录方式完全一样。

先建一个干净的工作目录,把所有东西装进去:

mkdir openmetadata-docker && cd openmetadata-docker

这一步纯粹是为了让日志、数据卷(docker-volume/目录会在这里生成)都落在一个固定位置,方便以后清理。

接下来敲下真正的启动命令(MySQL 版)。注意首次运行会从仓库上下文构建 server 和 ingestion 两个镜像,会花几分钟,看到Starting之类的进度不要急着杀进程:

docker compose -f docker/development/docker-compose.yml up --detach

跑起来后它按依赖顺序干活:先起 MySQL 和 Elasticsearch 并各自做健康检查,然后execute_migrate_all容器执行一次数据库迁移(对应仓库里的 bootstrap/openmetadata-ops.sh,跑完自动退出,这是正常现象),最后才是主 server 和 ingestion(Airflow)容器。

等一两分钟,用这条命令验证状态:

docker ps

你期望看到的是这四行(STATUS列不再是Restarting):

openmetadata_mysql 0.0.0.0:3306->3306/tcp Up (healthy) openmetadata_elasticsearch 0.0.0.0:9200->9200/tcp Up (healthy) openmetadata_server 0.0.0.0:8585->8585/tcp Up (healthy) openmetadata_ingestion 0.0.0.0:8080->8080/tcp Up

四个容器分别对应:业务数据库、搜索索引存储、OpenMetadata 主服务、数据摄取服务(Airflow,负责把各数据源的信息吸进来)。如果openmetadata_server一直在Restarting,先别慌,多半是它依赖的前两个还没 healthy,用docker compose -f docker/development/docker-compose.yml logs -f openmetadata_server看日志尾部确认。

现在打开浏览器,访问http://localhost:8585,用默认管理员账号登录:

  • 用户名:admin@open-metadata.org
  • 密码:admin

登录后你会看到这个欢迎页,说明主服务已经完整可用。摄取服务的 Airflow 界面在http://localhost:8080,账号密码都是admin,之后配置数据源、跑摄取任务时会用到。

停服与清数据速查

日常折腾只需要下面这几条,都基于同一个 compose 文件(下面以 MySQL 版为例,PG 版把-f后面的路径换掉即可):

操作命令一句话说明
暂停所有容器docker compose stop数据保留,下次docker compose start直接续上
恢复运行docker compose start不重建、不拉新镜像,比重新up
拆掉容器和网络docker compose down数据卷还在,删容器不删数据

⚠️ 最后这条单独拎出来:docker compose down --volumes会连数据卷一起删掉——数据库、搜索索引全部清空,等于重置。想"回到刚装好的状态"时用它,千万别当成down顺手敲了。

容器没起来怎么排查:两个高频坑

坑一:compose 启动时直接报网络错误

你会看到类似这样的输出:

error creating network: ... already exists / duplicate ID

原因是之前的 compose 项目(可能来自旧目录、旧版本)遗留了同名但已不可用的网络,新的网络创建和它撞车了。修复方式只有一条:

docker network prune

它会清掉所有未被容器引用的网络,然后重新执行up命令即可。

坑二:WSL2 下容器起得来但读写权限不对

症状通常是挂载目录里的文件属主混乱、日志里频繁出现permission denied。原因是 WSL2 默认不启用 9P 元数据透传。按前文引用的配置改/etc/wsl.conf

[automount] options = "metadata,case=force"

保存后重启 WSL2(wsl --shutdown再重新进入),重跑up命令验证docker ps四行容器全部恢复Up

跑通之后:推到生产之前值得做的几件事

本地这套配置是"能跑"而不是"能上"。在你考虑让团队或生产环境接入之前,按优先级做三件事:

  1. 改掉默认管理员密码(admin/admin出现在每一份公开文档里)
  2. 给 8585 端口套上 HTTPS,别裸奔
  3. 收紧注册域名和访问策略,compose 文件里AUTHORIZER_ALLOWED_DOMAINS这类变量就是留给这一步的,配置样例见 conf/openmetadata.yaml

玩熟之后的路也很直白:在 UI 里加一个数据库服务试试连接器、定义自己的标签体系、配置数据血缘(记录数据"从哪来、到哪去"的链路)、挂上数据质量监控规则——这几件事官方文档里都有专门章节,跟着点过去就行。

下一步建议:打开http://localhost:8585,先给你的本地任意一个 MySQL 库建个 service,看数据被吸进这个界面的感觉。

【免费下载链接】OpenMetadataThe Open Context Layer for Data and AI , OpenMetadata is the open platform for building trusted data context and business semantics for humans, AI assistants, and agents.项目地址: https://gitcode.com/GitHub_Trending/op/OpenMetadata

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询