本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
Apache Iceberg Rest Fixture 是一个轻量级的 Docker 镜像,用于快速部署模拟的 Apache Iceberg REST 服务端点。该镜像旨在为开发、测试和集成验证场景提供便捷的 Iceberg REST API 环境,无需部署完整的 Iceberg 集群或依赖外部存储服务。其核心目标是降低 Iceberg 客户端开发、功能演示和自动化测试的门槛。
通过 docker run 快速启动内存模式的服务:
docker run -d -p 8181:8181 --name iceberg-rest-fixture apache/iceberg-rest-fixture:latest
-p 8181:8181:映射容器内默认端口(8181)到主机。--name iceberg-rest-fixture:指定容器名称,便于后续操作(如日志查看、停止)。镜像支持通过环境变量自定义服务行为,常用配置如下:
| 环境变量 | 描述 | 默认值 | 可选值 |
|---|---|---|---|
PORT | 服务监听端口 | 8181 | 1-65535 间整数 |
STORAGE_TYPE | 元数据存储类型 | memory | memory(内存)、file(文件系统) |
METADATA_PATH | 元数据存储路径(仅 file 模式) | /tmp/iceberg-metadata | 容器内绝对路径 |
LOG_LEVEL | 日志输出级别 | INFO | DEBUG、INFO、WARN、ERROR |
ALLOW_CORS | 是否允许跨域请求 | false | true、false |
使用文件系统存储元数据(需持久化测试数据时):
docker run -d \ -p 8182:8182 \ -e PORT=8182 \ -e STORAGE_TYPE=file \ -e METADATA_PATH=/data/iceberg-metadata \ -v $(pwd)/local-metadata:/data/iceberg-metadata \ # 挂载主机目录到容器,实现数据持久化 --name iceberg-rest-fixture-file \ apache/iceberg-rest-fixture:latest
适用于多服务集成测试场景(如同时启动 Iceberg Rest Fixture 和客户端应用):
# docker-compose.yml version: '3.8' services: iceberg-rest: image: apache/iceberg-rest-fixture:latest container_name: iceberg-rest-fixture ports: - "8181:8181" environment: - PORT=8181 - STORAGE_TYPE=memory - LOG_LEVEL=DEBUG # 调试模式下输出详细请求日志 restart: unless-stopped # 示例:Iceberg 客户端测试容器(如 Python/Java 客户端) test-client: image: python:3.9-slim container_name: iceberg-test-client depends_on: - iceberg-rest command: ["sleep", "3600"] # 保持容器运行,便于手动执行测试命令
启动命令:docker-compose up -d
默认内存模式下,服务重启后数据会丢失。如需在测试中保留元数据,可通过以下方式实现:
文件系统存储 + 卷挂载(推荐):
如上文 STORAGE_TYPE=file 示例,将容器内 METADATA_PATH 挂载到主机目录,实现元数据持久化。
外部存储集成(高级场景):
通过自定义配置文件(需挂载配置卷)指定外部存储(如 S3、GCS),但需额外提供存储访问密钥(不推荐测试环境使用)。
服务启动后,可通过 HTTP 请求调用 Iceberg REST API,以下为常用操作示例:
curl http://localhost:8181/v1/health # 响应:{"status":"UP","version":"1.0.0"}
curl -X POST http://localhost:8181/v1/catalogs/default/tables \ -H "Content-Type: application/json" \ -d '{ "identifier": "test_db.test_table", "schema": { "type": "struct", "fields": [ {"name": "id", "type": "int", "required": true}, {"name": "data", "type": "string", "required": false} ] }, "location": "s3://test-bucket/test_db/test_table" # 仅为模拟路径,实际存储由 STORAGE_TYPE 控制 }'
curl http://localhost:8181/v1/catalogs/default/tables/test_db.test_table
STORAGE_TYPE=memory 模式下,容器重启或崩溃会导致所有元数据丢失,需提前备份关键测试数据。PORT 环境变量自定义端口(如 -e PORT=8282),并调整主机端口映射(如 -p 8282:8282)。免费版仅支持 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 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429