📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入
搭建持久化的 INFINI Console 与 Easysearch 容器环境

背景介绍 #

许多用户在使用 Docker 部署 INFINI Console(本文使用 1.29.6 版本)时,可能会遇到一个常见问题:重启容器后,之前在 INFINI Console 中所连接的系统集群配置会丢失。这个问题通常源于未能正确配置 Docker 的数据持久化。原本通过 Docker 运行 INFINI Console 只是一个简单的测试示例,并未考虑多次重启使用,现官方文档也进行了更新,参考: 容器部署

接下来我们本地测试一下。

理解核心问题:Docker 容器与数据持久化 #

默认情况下,Docker 容器的文件系统是临时的。当容器被停止并删除后,容器内部所做的任何未被持久化的更改都会丢失。INFINI Console 的配置存储在其容器内部的特定目录中。为了在容器重启或重建后保留这些信息,我们必须将这些关键目录映射到宿主机(你的电脑)上的持久化存储位置。

准备工作 #

  • 操作系统: macOS (本文示例)
  • Docker 环境: OrbStack ( https://orbstack.dev/) 或 Docker Desktop for Mac。

请确保 Docker 服务已启动并正常运行。你可以通过在终端执行 docker --version 来验证。

docker --version
Docker version 25.0.5, build 5dc9bcc

步骤一:创建本地持久化目录和自定义 Docker 网络 #

首先,在宿主机上为 Console 和 Easysearch 创建用于存储配置、数据和日志的目录。同时,创建一个自定义 Docker 网络,以便容器之间可以通过名称进行通信。

# 1. 创建项目根目录和各个服务的持久化子目录
mkdir -p ~/infini_manual_setup/console/config ~/infini_manual_setup/console/data ~/infini_manual_setup/console/logs
mkdir -p ~/infini_manual_setup/easysearch/config ~/infini_manual_setup/easysearch/data ~/infini_manual_setup/easysearch/logs
cd ~/infini_manual_setup

# 2. 创建一个自定义的 Docker 桥接网络
docker network create infini_app_net
  • infini_app_net 是我们为这两个容器创建的自定义网络名称。

步骤二:提取初始配置文件 #

为了方便首次启动和后续自定义,我们需要从官方 Docker 镜像中提取默认的配置文件到我们本地创建的持久化目录中。

1. INFINI Console (1.29.6) 初始配置 根据 INFINI Console 官方 Docker 文档,其容器内配置文件位于 /config

docker pull infinilabs/console:1.29.6
docker run --rm \
    -v $PWD/console/config:/temp_host_config \
    infinilabs/console:1.29.6 \
    sh -c "cp -a /config/. /temp_host_config/ && chmod -R ugo+rw /temp_host_config/"

2. INFINI Easysearch (1.13.0) 初始配置 INFINI Easysearch 镜像内部的配置文件位于 /app/easysearch/config,并且需要初始管理员密码 INFINILabs01

重要提示:请务必为 Easysearch 设置安全的密码。

docker pull infinilabs/easysearch:1.13.0
docker run --rm \
    -e EASYSEARCH_INITIAL_ADMIN_PASSWORD="INFINILabs01" \
    -v $PWD/easysearch/config:/temp_host_config \
    infinilabs/easysearch:1.13.0 \
    sh -c "cp -a /app/easysearch/config/. /temp_host_config/ && chmod -R ugo+rw /temp_host_config/"

现在,你的本地 console/configeasysearch/config 目录应该包含了初始配置文件。

检查目录如下

tree -L 3 .
.
├── console
│   ├── config
│   │   ├── install_agent.tpl
│   │   ├── permission.json
│   │   ├── setup
│   │   └── system_config.tpl
│   ├── data
│   └── logs
└── easysearch
    ├── config
    │   ├── admin.crt
    │   ├── admin.key
    │   ├── analysis-ik
    │   ├── ca.crt
    │   ├── ca.key
    │   ├── easysearch.yml
    │   ├── easysearch.yml.example
    │   ├── instance.crt
    │   ├── instance.key
    │   ├── jvm.options
    │   ├── jvm.options.d
    │   ├── log4j2.properties
    │   └── security
    ├── data
    └── logs

步骤三:手动运行 INFINI Easysearch 容器 #

使用 docker run 命令启动 Easysearch,并配置端口映射、环境变量和最重要的——卷挂载。

docker run -d \
--name easysearch01 \
--network infini_app_net \
-p 9200:9200 \
-p 9300:9300 \
-e cluster.name="infini_local_cluster" \
-e node.name="easysearch-node01" \
-e cluster.initial_master_nodes="easysearch-node01" \
-e "ES_JAVA_OPTS=-Xms1g -Xmx1g" \
-e EASYSEARCH_INITIAL_ADMIN_PASSWORD="INFINILabs01" \
-v $PWD/easysearch/config:/app/easysearch/config \
-v $PWD/easysearch/data:/app/easysearch/data \
-v $PWD/easysearch/logs:/app/easysearch/logs \
--ulimit memlock=-1:-1 \
--ulimit nofile=65536:65536 \
infinilabs/easysearch:1.13.0

关键参数解释:

  • --name easysearch01: 为容器指定一个名称。
  • --network infini_app_net: 连接到自定义网络。
  • -p HOST_PORT:CONTAINER_PORT: 端口映射。
  • -e VARIABLE=VALUE: 设置环境变量。
  • -v $PWD/host/path:/container/path: 实现持久化的核心。将宿主机当前工作目录 ($PWD) 下的子目录映射到容器内的指定路径。

步骤四:手动运行 INFINI Console 容器 #

现在启动 Console 容器,同样配置网络、端口、环境变量和卷挂载。

docker run -d \
--name console01 \
--network infini_app_net \
-p 9000:9000 \
-v $PWD/console/config:/config \
-v $PWD/console/data:/data \
-v $PWD/console/logs:/log \
infinilabs/console:1.29.6

查看日志

docker logs -f easysearch01
docker logs -f console01

步骤五:验证服务和持久化 #

  1. 检查容器状态: docker ps (应能看到 easysearch01console01)。
  2. 访问 Console: 浏览器打开 http://localhost:9000
  3. 在 Console 中进行初始化配置
  4. 测试持久化 (重启 Console 容器):
docker stop console01
docker rm console01
# 重新运行步骤四中启动 Console 的 docker run 命令 (确保所有参数一致)

操作截图

再次访问 Console: 打开 http://localhost:9000。如果一切正常,证明持久化成功。

步骤六:停止和清理(可选) #

  • 停止容器: docker stop console01 easysearch01
  • 移除容器: docker rm console01 easysearch01
  • 移除网络: docker network rm infini_app_net
  • 移除本地持久化数据 (如果不再需要):
rm -rf ~/infini_manual_setup/console
rm -rf ~/infini_manual_setup/easysearch

总结 #

通过 docker run 命令并仔细配置卷挂载,我们成功地为 INFINI Console 和 Easysearch 构建了一个具有持久化能力的本地容器环境,有效解决了重启后配置丢失的问题。虽然手动操作参数较多,但它能让你更清晰地理解 Docker 的核心机制。

在后续的文章中,我们将探讨如何使用 Docker Compose 来简化这一过程。

标签
2026 x
开源 x
赞助 x
开源生态 x
社区 x
低空经济 x
商业化 x
Easysearch x
数据分析 x
金猿奖 x
国产化 x
搜索引擎 x
Coco AI x
技术卓越奖 x
创新产品奖 x
IT168 x
APM x
Skywalking x
产品更新 x
Easy-Es x
Coco x
AI x
GitLab x
代码审核 x
人工智能 x
石油石化 x
performance x
Gitee x
投票 x
Meilisearch x
Rust x
轻量级 x
搜索百科 x
Docker x
Docker Compose x
Easyserach x
Console x
DevOps x
Elasticsearch x
国产替代 x
backup x
snapshot x
CCR x
Gateway x
esdump x
source_reuse x
ignore_above x
OpenSearch x
AWS x
Lucene x
Solr x
Easyearch x
发明专利 x
数据分区 x
国际专利 x
一等奖 x
人工智能应用创新大赛 x
bulk x
embedding x
OpenAI x
IK x
TDBC x
2025 x
信通院 x
可信数据库大会 x
搜索型数据库 x
中国数据库产业图谱 x
上海开源创新菁英荟 x
开源创新新星企业 x
Workshop x
AI 搜索 x
智能助手 x
Automation x
Logstash x
MongoDB x
开源中国 x
直播 x
merge x
Elasticsearch 9 x
GitCode x
AI搜索 x
Cloud x
rollup x
Kubernetes x
Operator x
Arm64 x
Snapshot x
S3 x
Grafana x
Opensearch x
Nginx x
直播活动 x
搜索客社区 x
Meetup x
ES x
企业搜索 x
DeepSeek x
RAG x
certificate x
windows x
Rollup x
TopN x
Filebeat x
Ubuntu x
请求限速 x
INFINI Console x
指标 x
Kibana x
多集群 x
client x
Spring Boot x
ECE x
ES Bulk x
vector database x
Postgres x
可搜索快照 x
SDK x
官网 x
Web 开发 x
Next.js x
React x
Three.js x
Metrics x
Helm x
filter x
querycache x
practice x
Agent x
localStorage x
响应式 x
时间组件 x
时区组件 x
极限科技 x
三周年 x
周年庆 x
国家高新技术企业 x
校园招聘 x
湖北工业大学 x
Tauri x
Web 开发人员 x
桌面应用开发 x
桌面端 x
Electron x
Pizza x
认证培训 x
报名 x
Scrapy x
爬虫 x
Rust开发者大会 x
docsearch x
文档搜索 x
Easyseach x
有奖征文 x
黑神话悟空 x
EKS x
征文系列 x
跨集群搜索 x
科技中小企业 x
白皮书 x
Python SDK x
数据库产业图谱 x
超大规模 x
分布式集群 x
写入限流 x
2024可信数据库发展大会 x
创新型中小企业 x
搜索数据库 x
正排索引 x
免费许可证 x
K8S x
DTC2024 x
实时搜索 x
ES国产化 x
Redis x
OOM x
测试 x
内存 x
趋势 x
AI绘画 x
Stable Diffusion x
Diffusion x
Model x
GAN x
语义搜索 x
知识图 x
向量数据库 x
中国信通院 x
星河(Galaxy) x
标杆案例 x
鲲鹏 x
鲲鹏技术认证 x
客户端 x
日志平台 x
LDAP x
Loadgen x
中国一汽 x
国内数据库 x
墨天轮 x
监控系统 x
集成测试 x
ZSTD x
Helm Charts x
国产适配 x
兆芯 x
Linux x
LoongArch x
信创适配 x
二维拆分算法 x
中国移动云 x
Vault x
加密 x
安全工具 x
kNN x
向量检索 x
图片搜索 x
Alerting x
SQL x
搜索 x
Embedding x
可信数据库 x
统信 x
海光 x
龙芯 x
restore x
Arm x
大数据企业证书 x
移动云大会 x
信通院产品评测 x
国内首家 x
数据可视化 x
北京软协 x
第十届理事会会员单位 x
Apache Arrow x
宣传片 x
大会分享 x
多集群管理 x
无缝数据迁移 x
Loadrun x
INFINI Gateway x
log4j x