--- title: "使用 Docker Compose 轻松实现 INFINI Console 离线部署与持久化管理" date: 2025-10-28 lastmod: 2025-10-28 description: "本文是 INFINI Console 环境搭建系列的第四篇,专为需要在离线或内网环境中容器化部署 INFINI Console 与 Easysearch 的用户设计。" tags: ["Docker", "Docker Compose", "Easyserach", "Console", "DevOps"] summary: "系列回顾与引言 # 在我们的 INFINI 本地环境搭建系列博客中: 第一篇《 搭建持久化的 INFINI Console 与 Easysearch 容器环境》,我们深入探讨了如何使用基础的 docker run 命令,一步步构建起 Console 和 Easysearch 服务,并重点解决了数据持久化的问题。 第二篇《 使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建》,我们学习了如何利用 Docker Compose 的声明式配置,将多容器应用的定义和管理变得更加简洁高效。 第三篇《 一键启动:使用 start-local 脚本轻松管理 INFINI Console 与 Easysearch 本地环境》,我们介绍了如何在联网环境下,一键安装 INFINI Console。 接下来,我们将聚焦于离线环境,详细讲解如何使用 Docker Compose 部署 INFINI Console 和 Easysearch。 简介 # INFINI Console 是一款强大的集群管理与可观测性平台,而 INFINI Easysearch 则是一个轻量级、高性能的搜索与分析引擎。官方提供的离线部署包将两者整合,非常适合在无外网或需要快速搭建演示环境的场景下使用。 本文将详细介绍如何下载资源、正确加载镜像、以及最关键的——如何根据您的需求修改 docker-compose.yml 中的各项配置。 1. 准备工作 # 请确保您的环境中已安装以下软件:" --- ## 系列回顾与引言 在我们的 INFINI 本地环境搭建系列博客中: 1. 第一篇《[搭建持久化的 INFINI Console 与 Easysearch 容器环境](/blog/2025/console-easysearch-with-docker)》,我们深入探讨了如何使用基础的 `docker run` 命令,一步步构建起 Console 和 Easysearch 服务,并重点解决了数据持久化的问题。 2. 第二篇《[使用 Docker Compose 简化 INFINI Console 与 Easysearch 环境搭建](/blog/2025/console-easysearch-with-docker-compose)》,我们学习了如何利用 Docker Compose 的声明式配置,将多容器应用的定义和管理变得更加简洁高效。 3. 第三篇《[一键启动:使用 start-local 脚本轻松管理 INFINI Console 与 Easysearch 本地环境](/blog/2025/console-easysearch-start-local)》,我们介绍了如何在联网环境下,一键安装 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/console` 和 `infinilabs/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.tar` 和 `easysearch.tar` 等文件解压到 `images/` 目录中。 2. **批量加载所有镜像**: ```bash cd images ls *.tar | xargs -I {} docker load -i {} ``` 该命令会自动为目录下的每个 `.tar` 文件执行 `docker load` 操作。 3. **验证镜像加载结果**: ```bash docker images ``` 您应该能看到 `infinilabs/console:1.29.8` 和 `infinilabs/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 接口在宿主机上的映射端口。 * **修改建议**: 如果 `9200` 或 `9300` 端口冲突,请修改。 #### **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_ABS`、`EASYSEARCH_INITIAL_ADMIN_PASSWORD` 和 `ES_JAVA_OPTS_DEFAULT`,这能确保部署的稳定性和安全性。 希望这篇详细的指南能帮助您顺利完成部署!