使用 Docker Compose 轻松实现 INFINI Console 离线部署与持久化管理

系列回顾与引言

在我们的 INFINI 本地环境搭建系列博客中:

  1. 第一篇《搭建持久化的 INFINI Console 与 Easysearch 容器环境》,我们深入探讨了如何使用基础的 docker run 命令,一步步构建起 Console 和 Easysearch 服务,并重点解决了数据持久化的问题。
  2. 第二篇《使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建》,我们学习了如何利用 Docker Compose 的声明式配置,将多容器应用的定义和管理变得更加简洁高效。
  3. 第三篇《一键启动:使用 start-local 脚本轻松管理 INFINI Console 与 Easysearch 本地环境》,我们介绍了如何在联网环境下,一键安装 INFINI Console。

接下来,我们将聚焦于离线环境,详细讲解如何使用 Docker Compose 部署 INFINI Console 和 Easysearch。

简介

INFINI Console 是一款强大的集群管理与可观测性平台,而 INFINI Easysearch 则是一个轻量级、高性能的搜索与分析引擎。官方提供的离线部署包将两者整合,非常适合在无外网或需要快速搭建演示环境的场景下使用。

本文将详细介绍如何下载资源、正确加载镜像、以及最关键的------如何根据您的需求修改 docker-compose.yml 中的各项配置。


1. 准备工作

请确保您的环境中已安装以下软件:

  • Docker
  • Docker Compose

2. 下载离线资源

从官方地址下载两个核心文件:

  • infini-console.tar.gz: 包含 docker-compose.yml 和相关脚本。
  • infini-console-easysearch-1.14.2.tar: 包含 infinilabs/consoleinfinilabs/easysearch 的 Docker 镜像。
bash 复制代码
wget https://release.infinilabs.com/easysearch/archive/offline/amd64/infini-console.tar.gz
wget https://release.infinilabs.com/easysearch/archive/offline/amd64/infini-console-easysearch-1.14.2.tar

3. 正确加载 Docker 镜像

注意infini-console-easysearch-1.14.2.tar 是一个包含多个镜像的归档包,不能直接使用 docker load 加载。

正确的加载步骤如下:

  1. 创建目录并解压镜像归档包

    bash 复制代码
    mkdir -p images
    tar -xvf infini-console-easysearch-1.14.2.tar -C images

    这会将 console.tareasysearch.tar 等文件解压到 images/ 目录中。

  2. 批量加载所有镜像

    bash 复制代码
    cd images
    ls *.tar | xargs -I {} docker load -i {}

    该命令会自动为目录下的每个 .tar 文件执行 docker load 操作。

  3. 验证镜像加载结果

    bash 复制代码
    docker images

    您应该能看到 infinilabs/console:1.29.8infinilabs/easysearch:1.14.2 等镜像。


4. 修改配置文件

解压 infini-console.tar.gz 后,找到 .env 文件。所有自定义配置都应在此文件中修改。

以下是各项配置的详细说明和修改建议:

核心路径配置
env 复制代码
WORK_DIR_ABS=/data/infini-console
  • 作用: 定义所有持久化数据(日志、配置、索引)的根目录。
  • 修改建议 : (必改) 强烈建议修改为您服务器上一个有足够空间的路径,例如 /opt/infini-console。确保该目录存在且 Docker 拥有写入权限。
网络配置
env 复制代码
APP_NETWORK_NAME=infini-local-net
  • 作用: 定义 Docker 内部网络的名称。
  • 修改建议: 通常无需修改。
Console 配置
env 复制代码
CONSOLE_IMAGE=infinilabs/console
CONSOLE_VERSION_TAG=1.29.8
CONSOLE_CONTAINER_NAME=infini-console
CONSOLE_PORT_HOST=9000
CONSOLE_PORT_CONTAINER=9000
  • 作用: 定义 Console 的镜像、版本、容器名及端口映射。
  • 修改建议 :
    • CONSOLE_PORT_HOST: 如果宿主机的 9000 端口已被占用,请修改为其他可用端口(如 8080)。
Easysearch 配置
env 复制代码
EASYSEARCH_IMAGE=infinilabs/easysearch
EASYSEARCH_VERSION_TAG=1.14.2
EASYSEARCH_NODES=1
EASYSEARCH_CLUSTER_NAME=infini-console
  • 作用: 定义 Easysearch 的镜像、版本、节点数和集群名。
  • 修改建议 :
    • EASYSEARCH_NODES: 单机部署保持 1 即可。
访问与安全配置
env 复制代码
EASYSEARCH_INITIAL_ADMIN_PASSWORD=ShouldChangeme123.
  • 作用 : 设置 Easysearch admin 用户的初始密码。
  • 修改建议 : (必改) 请务必将其替换为一个强密码。登录 Console 时需要使用此密码。
env 复制代码
EASYSEARCH_HTTP_PORT_HOST=9200
EASYSEARCH_TRANSPORT_PORT_HOST=9300
  • 作用: 定义 Easysearch HTTP 和 Transport 接口在宿主机上的映射端口。
  • 修改建议 : 如果 92009300 端口冲突,请修改。
JVM 参数配置
env 复制代码
ES_JAVA_OPTS_DEFAULT="-Xms8g -Xmx8g"
  • 作用: 设置 Easysearch 的 JVM 堆内存大小。
  • 修改建议 : (必改) 请根据服务器物理内存进行调整,避免超过物理内存的 50%。
    • 8GB 内存服务器 : 建议设为 -Xms2g -Xmx2g
    • 16GB 内存服务器 : 建议设为 -Xms4g -Xmx4g
数据持久化路径
env 复制代码
CONSOLE_HOST_DATA_SUBPATH_REL=console/data
CONSOLE_HOST_LOGS_SUBPATH_REL=console/logs
EASYSEARCH_HOST_NODES_BASE_SUBPATH_REL=easysearch
  • 作用 : 定义数据和日志在 WORK_DIR_ABS 下的相对子路径。
  • 修改建议: 通常无需修改。

5. 启动服务

完成配置修改后,在 docker-compose.yml 所在目录下执行:

bash 复制代码
docker-compose up -d

等待服务完全启动。


6. 访问控制台

打开浏览器,访问 http://<你的服务器IP>:9000

使用默认用户名 admin 和您在 EASYSEARCH_INITIAL_ADMIN_PASSWORD 中设置的密码进行初始化。


总结

通过以上步骤,您可以灵活地部署一套功能完整的 INFINI Console + Easysearch 环境。关键在于理解并根据实际情况修改 .env 文件中的参数,特别是 WORK_DIR_ABSEASYSEARCH_INITIAL_ADMIN_PASSWORDES_JAVA_OPTS_DEFAULT,这能确保部署的稳定性和安全性。

希望这篇详细的指南能帮助您顺利完成部署!

作者:罗厚付,极限科技(INFINI Labs)云上产品设计与研发负责人,拥有多年安全风控及大数据系统架构经验,主导过多个核心产品的设计与落地,日常负责运维超大规模 ES 集群(800+节点/1PB+数据)。

原文:https://infinilabs.cn/blog/2025/console-easysearch-with-docker-compose-offline/

相关推荐
立早正文6 小时前
Docker从零到一部署DNMP+Redis《全程干货》
docker·容器·php
Cosolar6 小时前
国产麒麟系统 aarch64 架构 PostgreSQL 15 源码编译安装完整教程
java·后端
Juchecar6 小时前
软件工程是“伪学科”吗?
devops
GalaxyPokemon6 小时前
PlayerFeedback 插件开发日志
java·服务器·前端
天天摸鱼的java工程师7 小时前
别再写那些重复代码了!8年Java老兵教你用 Hutool 提升开发效率
java·后端
喝杯绿茶7 小时前
springboot中的事务
java·spring boot·后端
麦兜*7 小时前
多阶段构建:打造最小化的 Spring Boot Docker 镜像
java·spring boot·后端·spring cloud·docker
oak隔壁找我7 小时前
Spring Boot Starter 入门教程
java·后端
YoungP7 小时前
【Effective Java 条目一】-- 用静态工厂方法替代构造器
java