最可行路径是docker compose部署,裸机安装不被支持;需先验证docker≥20.10.0和docker compose≥v2.1.1,普通用户须加入docker组并重登终端,centos 7还需调高vm.max_map_count至262144,离线环境须手动拉取并导入镜像,换postgresql需显式指定对应yml文件。

直接用 docker compose 部署是最可行的路径,裸机安装不被支持,所有官方路径都依赖 Docker 容器运行。
确认 Docker 和 docker compose 是否就绪
OpenMetadata 不接受裸机直装,第一步必须验证容器环境:
- 运行
docker --version,输出需为 20.10.0+;低于此版本会卡在镜像拉取或启动失败 - 运行
docker compose version(注意是docker compose,不是docker-compose),必须含v2.1.1+;v1 版本会报错command not found或client version 1.41 is too old - 普通用户默认无权调用 Docker,需执行
sudo usermod -aG docker $USER并完全退出终端重登 - CentOS 7 用户额外注意:
vm.max_map_count默认值太低,Elasticsearch 容器会立即崩溃,必须提前执行sudo sysctl -w vm.max_map_count=262144并写入/etc/sysctl.conf
在线一键启动(MySQL 默认)
适用于 Ubuntu/Debian/CentOS 8+ 等主流发行版,5 分钟内可访问 UI:
- 克隆代码:
git clone https://gitcode.com/GitHub_Trending/op/OpenMetadata.git && cd OpenMetadata - 进入配置目录:
cd docker/docker-compose-quickstart - 启动服务:
docker compose up -d(自动拉取openmetadata_server、mysql:8.0、elasticsearch:8.11.3等镜像) - 等待 2–3 分钟后,运行
docker ps应看到 4 个Up状态容器:openmetadata_server、openmetadata_mysql、openmetadata_elasticsearch、openmetadata_ingestion - 浏览器打开
http://localhost:8585,用admin/admin登录
离线环境必须手动准备镜像
麒麟、CentOS 7 等无外网环境无法自动拉镜像,必须提前下载并导入:
- 在有网机器上逐个拉取关键镜像:
docker pull openmetadata/openmetadata-server:1.7.1、docker pull mysql:8.0、docker pull elasticsearch:8.11.3等(版本号需与你选用的docker-compose.yml中声明的一致) - 打包:
docker save -o om.tar $(docker images -q openmetadata/openmetadata-server:1.7.1 mysql:8.0 elasticsearch:8.11.3) - 拷贝
om.tar到目标机器,执行docker load -i om.tar - 数据库和 Elasticsearch 强烈建议宿主机直装而非容器——CentOS 7 的
overlay2存储驱动兼容性差,容器极易因内核参数或资源限制退出
PostgreSQL 替换 MySQL 的注意事项
若想用 PostgreSQL 而非默认 MySQL,不能只改环境变量,必须切换 Compose 文件:
- 启动命令必须显式指定:
docker compose -f docker-compose-postgres.yml up -d -
docker-compose-postgres.yml里已预置 PostgreSQL 服务,但它的DB_HOST默认指向postgres容器名,若你用外部 PostgreSQL 实例,需同步修改该文件中所有POSTGRES_HOST、POSTGRES_PORT等变量 - 首次启动时,OpenMetadata 会自动初始化 schema;若复用已有 PostgreSQL 数据库,请确保
openmetadata数据库为空或已执行过对应版本 migration - PostgreSQL 镜像体积更大、启动更慢,对内存要求更高(建议 ≥8GB),否则
openmetadata_server容器可能因连接超时反复重启
真正卡住人的往往不是部署命令本身,而是 Docker 权限、内核参数、镜像版本错配这三处;尤其是 vm.max_map_count 和 docker compose 命令拼写,90% 的“启动失败”都源于这两个点。











