零基础 Docker部署OpenSearch 完整教程

为什么选择 Docker 来部署 OpenSearch

OpenSearch 是一款开源的分布式搜索与分析引擎,常用于日志分析、全文检索等场景。
用 Docker 部署 OpenSearch 可以快速拉起一个可使用的单节点实例,适合开发测试或小型项目,并且省去了手动安装 Java 和复杂配置的步骤。

开始前的准备工作

在操作之前,请确保你的服务器满足以下条件:

  • 已安装 Docker 和 Docker Compose(建议 Docker 20.10+,Docker Compose v2)
  • 服务器内存不少于 2GB(OpenSearch 默认堆内存占用 1GB)
  • 系统内核参数 vm.max_map_count 至少为 262144(否则启动会报错)

检查内核参数

cat /proc/sys/vm/max_map_count

如果输出小于 262144,需要临时或永久修改:

# 临时生效(重启后失效)
sudo sysctl -w vm.max_map_count=262144

# 永久生效(写入 sysctl.conf)
echo 'vm.max_map_count=262144' | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

编写 Docker Compose 配置文件

在项目目录(例如 opensearch-docker)下创建 docker-compose.yml,内容如下:

version: '3'
services:
  opensearch:
    image: opensearchproject/opensearch:latest
    container_name: opensearch
    environment:
      - discovery.type=single-node
      - OPENSEARCH_INITIAL_ADMIN_PASSWORD=YourStrongPassword123!
      - plugins.security.ssl.http.enabled=false
    ports:
      - 9200:9200
      - 9600:9600
    volumes:
      - ./data:/usr/share/opensearch/data
      - ./config/opensearch.yml:/usr/share/opensearch/config/opensearch.yml

说明

  • discovery.type=single-node:单节点模式,便于测试。
  • OPENSEARCH_INITIAL_ADMIN_PASSWORD:初始化管理员密码,必须包含大小写字母和数字,长度至少 8 位。
  • 关闭 SSL 仅在测试环境使用,生产环境建议开启。

除了 Docker Compose,我们还可以创建一个自定义配置文件 config/opensearch.yml

# config/opensearch.yml
plugins.security.disabled: false

(默认安全插件已启用,无需额外配置,这里保持默认即可)

启动容器并验证

进入 docker-compose.yml 所在目录,执行:

docker compose up -d

等待几分钟后查看容器日志确认启动是否成功:

docker logs opensearch -f

日志中出现 Node started 或类似字样说明启动正常。

验证 API 访问
使用 curl 测试集群状态(替换密码为你设置的密码):

curl -k -u admin:YourStrongPassword123! https://localhost:9200

如果启用了 SSL 需要加 -k,若在配置中关闭了 SSL,则使用 http 协议:

curl -u admin:YourStrongPassword123! http://localhost:9200

返回类似以下内容表示运行正常:

{
  "name" : "opensearch",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "...",
  "version" : {
    "distribution" : "opensearch",
    "number" : "2.x.x",
    ...
  },
  "tagline" : "The OpenSearch Project: https://opensearch.org/"
}

常见问题与避坑说明

Q:启动后容器不断重启,日志报 max virtual memory areas vm.max_map_count ... 错误
A:参考准备工作部分,修改 vm.max_map_count 到 262144 并重新启动容器。

Q:访问 9200 端口被拒绝,或连接超时
A:检查防火墙安全组是否放行了 9200 端口;另外注意安全插件默认强制 HTTPS,如果你关闭了 SSL(配置中 plugins.security.ssl.http.enabled=false),则使用 HTTP 访问。

Q:提示密码强度不足
A:OPENSEARCH_INITIAL_ADMIN_PASSWORD 必须包含大写、小写字母和数字,长度至少 8 位,例如 Test1234!

Q:生产环境该如何调整?
A:使用多节点集群模式(移除 discovery.type=single-node),开启 SSL,限制内存(通过 OPENSEARCH_JAVA_OPTS=-Xms1g -Xmx1g),并使用独立存储卷。

效果验证与下一步

通过以上步骤,你已经完成了一次完整的 Docker部署OpenSearch 实战。
你可以继续使用浏览器访问 http://你的IP:9200 并输入用户名密码 admin 来查看集群信息,或者通过 /_cat/indices API 创建索引测试。

如果你正在处理 Docker 部署 OpenSearch 的相关任务,建议先按照本文步骤完整执行,再根据自己的环境做微调。
遇到异常时优先回看避坑和高频问题部分,大部分启动失败都可以通过修改内核参数、检查端口占用或调整密码强度来解决。

分享到:
上一篇
Linux服务器用户登录审计实操指南
下一篇
服务器直播服务器搭建:零基础搭建服务器直播:完整操作指南
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意