如何在Docker部署的OpenSearch上安装自定义REST插件
前置准备
你克隆的是插件源码,需要先编译生成安装包才能安装:本地安装JDK11和Gradle环境后,进入插件根目录执行 ./gradlew build,编译完成后会在build/distributions目录下生成后缀为.zip的插件安装包。注意要确认插件配置的OpenSearch依赖版本和你使用的1.0.1完全匹配,否则会安装失败。
方案1:临时安装(适合测试验证)
该方案不需要修改配置,直接对运行中的容器操作,缺点是容器重建后插件会丢失。
- 把编译好的插件包拷贝到两个OpenSearch节点容器中:
docker cp ./build/distributions/你的插件包名.zip opensearch-node1:/tmp/ docker cp ./build/distributions/你的插件包名.zip opensearch-node2:/tmp/
- 分别进入两个容器执行安装命令:
# 操作node1 docker exec -it opensearch-node1 bash /usr/share/opensearch/bin/opensearch-plugin install file:///tmp/你的插件包名.zip # 提示确认权限时输入y确认,安装完成后退出容器 exit # 操作node2 docker exec -it opensearch-node2 bash /usr/share/opensearch/bin/opensearch-plugin install file:///tmp/你的插件包名.zip exit
- 重启两个节点容器使插件生效:
docker restart opensearch-node1 opensearch-node2
方案2:自定义镜像持久化安装(适合正式使用)
该方案把插件打包到自定义镜像中,容器重建不会丢失插件。
- 在你的
docker-compose.yml同级目录新建Dockerfile,内容如下:
FROM opensearchproject/opensearch:1.0.1 # 把本地编译好的插件包拷贝到镜像内 COPY ./build/distributions/你的插件包名.zip /tmp/ # 执行批量安装(--batch参数跳过交互确认) RUN /usr/share/opensearch/bin/opensearch-plugin install --batch file:///tmp/你的插件包名.zip
- 修改
docker-compose.yml里的两个OpenSearch节点配置,把原来的image: opensearchproject/opensearch:1.0.1替换为build: .,表示使用当前目录的Dockerfile构建镜像。 - 重新启动服务:
docker-compose up --build -d
验证安装结果
执行以下命令查看插件列表,确认两个节点都已加载你的自定义插件:
curl -k -u admin:admin https://localhost:9200/_cat/plugins
如果你用的是示例REST插件,可以调用对应接口测试功能:
curl -k -u admin:admin https://localhost:9200/_example/rest
正常会返回插件定义的响应内容。
内容的提问来源于stack exchange,提问作者David Munsa
相关产品推荐
相关产品推荐

