本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

Elasticdump 是一款用于迁移和保存 Elasticsearch 及 OpenSearch 索引的工具。它支持在不同 Elasticsearch/OpenSearch 实例之间传输数据,或备份索引至文件、对象存储(如 AWS S3、MinIO)等目标位置。该工具可灵活处理索引的映射(mapping)、分析器(analyzer)、数据(data)等多种类型,并提供数据过滤、分片、加密等高级功能,适用于数据备份、跨环境迁移、数据导出等场景。
--searchBody 指定查询条件,仅导出符合条件的数据;支持搜索模板(Search Template)。multielasticdump 工具批量迁移多个索引。需先安装 Node.js(v10.0.0+),通过 npm 安装:
# 本地安装 npm install elasticdump ./bin/elasticdump # 全局安装 npm install -g elasticdump elasticdump
docker pull elasticdump/elasticsearch-dump
docker run --rm -ti elasticdump/elasticsearch-dump [OPTIONS]
--rm:退出后删除容器。-ti:交互式终端,便于查看日志。-v /本地目录:/容器内目录)。迁移索引的映射、分析器和数据:
# 迁移分析器 docker run --rm -ti elasticdump/elasticsearch-dump \ --input=[***] \ --output=[***] \ --type=analyzer # 迁移映射 docker run --rm -ti elasticdump/elasticsearch-dump \ --input=[***] \ --output=[***] \ --type=mapping # 迁移数据 docker run --rm -ti elasticdump/elasticsearch-dump \ --input=[***] \ --output=[***] \ --type=data
将索引映射和数据备份至宿主机 /data 目录(需挂载卷):
# 备份映射 docker run --rm -ti -v /data:/tmp elasticdump/elasticsearch-dump \ --input=[***] \ --output=/tmp/my_index_mapping.json \ --type=mapping # 备份数据(启用 GZIP 压缩) docker run --rm -ti -v /data:/tmp elasticdump/elasticsearch-dump \ --input=[***] \ --output=/tmp/my_index_data.json.gz \ --type=data \ --fsCompress
导出 username: admin 的记录至文件:
docker run --rm -ti -v /data:/tmp elasticdump/elasticsearch-dump \ --input=[***] \ --output=/tmp/admin_data.json \ --type=data \ --searchBody='{"query":{"term":{"username":"admin"}}}'
若查询条件复杂,可将 JSON 保存至文件(如
/data/search.json),通过--searchBody=@/tmp/search.json引用。
docker run --rm -ti elasticdump/elasticsearch-dump \ --s3AccessKeyId "AKIAXXX" \ --s3SecretAccessKey "secret" \ --input "s3://my-bucket/backup/my_index_data.json" \ --output=[***] \ --type=data
导入 CSV 文件(跳过首行标题,使用分号分隔):
docker run --rm -ti -v /data:/tmp elasticdump/elasticsearch-dump \ --input "csv:///tmp/data.csv" \ --output=[***] \ --csvSkipRows 1 \ --csvDelimiter ";"
若 Elasticsearch 未部署在根路径(如 [***]),需显式指定索引名:
docker run --rm -ti elasticdump/elasticsearch-dump \ --input=[***] \ --input-index=my_index \ --output=[***] \ --output-index=my_index_backup \ --type=data
若需访问宿主机上的 Elasticsearch(localhost:9200),需使用主机网络:
docker run --rm -ti --net=host elasticdump/elasticsearch-dump \ --input=[***] \ --output=http://localhost:9200/my_index \ --type=data
Elasticdump 生成的文件为行分隔 JSON(Line-Delimited JSON),即每行是一个独立的 JSON 对象,而非整体 JSON 数组。此格式支持流式处理,避免内存溢出。示例:
{"_index":"my_index","_type":"_doc","_id":"1","_source":{"name":"test1"}} {"_index":"my_index","_type":"_doc","_id":"2","_source":{"name":"test2"}}
可通过以下命令解析:
while read LINE; do jq . <<< "${LINE}"; done < dump.json
| 参数 | 默认值 | 描述 |
|---|---|---|
--input | 无(必填) | 输入源(ES 地址、文件路径、S3 URL 等,如 [***])。 |
--output | 无(必填) | 输出目标(格式同 --input)。 |
--input-index | all | 输入索引名(含类型,如 my_index/_doc)。 |
--output-index | all | 输出索引名。 |
--type | data | 迁移数据类型:settings/analyzer/mapping/data/alias/template 等。 |
| 参数 | 默认值 | 描述 |
|---|---|---|
--limit | 100 | 批量操作的对象数量(近似值)。 |
--size | -1 | 最大迁移对象数(-1 表示无限制)。 |
--searchBody | 匹配所有文档 | 过滤查询 JSON(如 {"query":{"match_all":{}}}),支持 @file 引用文件。 |
--searchWithTemplate | false | 启用搜索模板(需 --searchBody 包含 id 和 params)。 |
--sourceOnly | false | 仅输出 _source 字段内容(默认包含 _index/_id 等元数据)。 |
--delete | false | 迁移后删除输入源文档(不删除索引)。 |
| 参数 | 默认值 | 描述 |
|---|---|---|
--concurrency | 1 | 并发请求数上限。 |
--scrollTime | 10m | 滚动查询(scroll)结果在节点保留时间(如 5m、1h)。 |
--timeout | 无 | 请求超时时间(毫秒)。 |
--retryAttempts | 0 | 网络错误重试次数(支持 ECONNRESET/ETIMEDOUT 等错误)。 |
--retryDelay | 5000 | 重试间隔(毫秒)。 |
| 参数 | 默认值 | 描述 |
|---|---|---|
--fileSize | 无 | 文件分割大小(如 10mb、1gb)。 |
--maxRows | 无 | 文件分割行数。 |
--fsCompress | false | 启用文件 GZIP 压缩/解压。 |
--csvDelimiter | , | CSV 文件分隔符(如 ;、\t)。 |
--csvSkipRows | 0 | CSV 跳过行数(不含标题行)。 |
| 参数 | 默认值 | 描述 |
|---|---|---|
--s3AccessKeyId | 无 | AWS/S3 访问密钥 ID。 |
--s3SecretAccessKey | 无 | AWS/S3 密钥。 |
--s3Region | 自动推断 | S3 区域(如 us-east-1)。 |
--s3Endpoint | 无 | S3 兼容服务端点(如 MinIO:[***])。 |
--s3ForcePathStyle | false | 强制使用路径风格 URL(如 s3.amazonaws.com/bucket/key)。 |
--s3ServerSideEncryption | false | 启用 S3 服务端加密。 |
| 参数 | 默认值 | 描述 |
|---|---|---|
--tlsAuth | false | 启用 TLS 客户端认证。 |
--cert | 无 | TLS 客户端证书文件路径。 |
--key | 无 | TLS 客户端密钥文件路径。 |
--headers | {"User-Agent": "elasticdump"} | 自定义 HTTP 头(如代理认证)。 |
bulk 选项,多索引迁移需使用 multielasticdump。s3Bucket/s3RecordKey,需使用 S3 URL(如 s3://bucket/key)。升级版本前建议参考 官方 release 说明,避免数据格式或功能兼容性问题。
免费版仅支持 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