
Cortex 是一个为 Prometheus 提供水平扩展、高可用、多租户支持的长期存储解决方案。作为 CNCF 孵化项目,Cortex 被广泛应用于生产环境(如 Weave Cloud 和 Grafana Cloud),主要作为 Prometheus 的 remote write 目标,并提供与 Prometheus 兼容的查询 API。
Cortex 可跨集群中的多台机器运行,突破单节点的吞吐量和存储限制。支持将多个 Prometheus 服务器的指标发送到单个 Cortex 集群,并在统一位置执行全局聚合查询。
集群模式下,Cortex 可在机器间复制数据,确保机器故障时无监控数据间隙,保障图表连续性。
支持在单个集群中隔离多个独立 Prometheus 数据源的数据和查询,允许不可信方共享集群资源,同时保证数据隔离。
支持 S3、GCS、Swift 和 Microsoft Azure 作为长期存储后端,实现数据持久化存储(超出单节点生命周期),适用于长期容量规划。
基本启动命令(单节点测试,使用块存储)
bashdocker run -d \ --name cortex \ -p 9009:9009 \ # HTTP API 端口 -p 9095:9095 \ # 健康检查端口 -e CORTEX_BLOCKS_STORAGE_ENABLED=true \ -e CORTEX_BLOCKS_STORAGE_BACKEND=local \ -e CORTEX_BLOCKS_STORAGE_LOCAL_DIRECTORY=/data \ -v $(pwd)/cortex-data:/data \ cortexproject/cortex:latest \ -config.file=/etc/cortex/config-blocks.yaml
注意:生产环境需替换为分布式存储后端(如 S3),并配置集群模式。
yamlversion: '3' services: cortex: image: cortexproject/cortex:latest container_name: cortex ports: - "9009:9009" # HTTP API - "9095:9095" # 健康检查 - "7946:7946" # 节点发现(gossip) environment: - CORTEX_TENANT_ID=default # 默认租户 ID(多租户场景需动态配置) - CORTEX_BLOCKS_STORAGE_ENABLED=true - CORTEX_BLOCKS_STORAGE_BACKEND=s3 - CORTEX_BLOCKS_STORAGE_S3_ACCESS_KEY_ID=AKIAEXAMPLE - CORTEX_BLOCKS_STORAGE_S3_SECRET_ACCESS_KEY=secret - CORTEX_BLOCKS_STORAGE_S3_BUCKET=my-cortex-bucket - CORTEX_BLOCKS_STORAGE_S3_ENDPOINT=s3.amazonaws.com - CORTEX_RING_BACKEND=memberlist # 分布式一致性协调 volumes: - ./cortex-config:/etc/cortex - ./cortex-data:/data command: -config.file=/etc/cortex/config.yaml restart: unless-stopped prometheus: image: prom/prometheus:latest container_name: prometheus ports: - "9090:9090" volumes: - ./prometheus.yml:/etc/prometheus/prometheus.yml restart: unless-stopped
Prometheus 配置示例(prometheus.yml)
yamlglobal: scrape_interval: 15s remote_write: - url: "http://cortex:9009/api/v1/push" headers: X-Scope-OrgID: "default" # 与 Cortex 租户 ID 匹配 scrape_configs: - job_name: 'prometheus' static_configs: - targets: ['localhost:9090']
| 环境变量 | 描述 | 默认值 |
|---|---|---|
CORTEX_TENANT_ID | 租户 ID(多租户场景需通过请求头 X-Scope-OrgID 动态传递) | default |
CORTEX_BLOCKS_STORAGE_ENABLED | 是否启用块存储(推荐) | false |
CORTEX_BLOCKS_STORAGE_BACKEND | 块存储后端类型(local/s3/gcs/azure/swift) | local |
CORTEX_BLOCKS_STORAGE_LOCAL_DIRECTORY | 本地存储路径(仅 local 后端) | /data |
CORTEX_HTTP_LISTEN_PORT | HTTP API 监听端口 | 9009 |
CORTEX_RING_BACKEND | 一致性哈希环后端(consul/etcd/memberlist,集群模式必填) | consul |
Cortex 配置通过 -config.file 指定,推荐使用官方提供的块存储配置模板(config-blocks.yaml),主要配置段包括:
blocks_storage:存储后端详细配置(如 S3 访问密钥、桶名称)limits:租户级限流配置(如每秒查询数、指标保留时间)distributor:数据写入分发配置querier:查询服务配置X-Scope-OrgID 传递租户 ID,而非环境变量 CORTEX_TENANT_ID。auth_enabled: true,并配合外部认证系统(如 OAuth2、API Key)。以下是 cortexproject/cortex 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务