如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
OpenSearch 是一个可扩展的开源解决方案,用于搜索、分析和可观测性。它支持全文查询、自然语言处理、自定义词典等功能。
OpenSearch 概述
商标声明:本软件列表由 Bitnami 打包。产品中提及的各个商标分别归各自公司所有,使用这些商标并不意味着任何关联或认可。
Bitnami OpenSearch 镜像是一个预配置、随时可用的容器化版本,旨在简化 OpenSearch 的部署和管理。该镜像遵循行业最佳实践,提供安全、可靠且易于使用的 OpenSearch 环境,适用于开发和生产场景。
consoledocker run --name opensearch bitnami/opensearch:latest
yamlversion: '2' services: opensearch: image: bitnami/opensearch:latest ports: - "9200:9200" - "9300:9300" environment: - OPENSEARCH_PASSWORD=your_password - OPENSEARCH_ENABLE_SECURITY=true volumes: - opensearch_data:/bitnami/opensearch/data volumes: opensearch_data: driver: local
启动服务:
consoledocker-compose up -d
推荐的获取 Bitnami OpenSearch Docker 镜像的方法是从 Docker Hub registry 拉取预构建的镜像:
consoledocker pull bitnami/opensearch:latest
如需使用特定版本,可拉取带版本标签的镜像。您可以在 https://hub.docker.com/r/bitnami/opensearch/tags/ 查看可用版本列表:
consoledocker pull bitnami/opensearch:[TAG]
如果需要,您也可以通过克隆仓库、进入包含 Dockerfile 的目录并执行 docker build 命令来自行构建镜像:
consolegit clone https://github.com/bitnami/containers.git cd bitnami/opensearch/[VERSION]/[OPERATING-SYSTEM] docker build -t bitnami/opensearch:latest .
如果删除容器,所有数据都将丢失,下次运行镜像时应用将重新初始化。为避免数据丢失,应挂载一个即使容器被删除也能持久化的卷。
应在 /bitnami 路径挂载一个目录。如果挂载的目录为空,将在首次运行时初始化:
consoledocker run \ -v /path/to/opensearch-data-persistence:/bitnami/opensearch/data \ bitnami/opensearch:latest
或对仓库中提供的 https://github.com/bitnami/containers/blob/main/bitnami/opensearch/docker-compose.yml 文件进行微调:
yamlopensearch: ... volumes: - /path/to/opensearch-data-persistence:/bitnami/opensearch/data ...
注意:由于这是一个非 root 容器,挂载的文件和目录必须对 UID
1001具有适当的权限。
还可以使用 OPENSEARCH_DATA_DIR_LIST 环境变量实现多卷数据持久化:
yamlopensearch: ... volumes: - /path/to/opensearch-data-persistence-1:/opensearch/data-1 - /path/to/opensearch-data-persistence-2:/opensearch/data-2 environment: - OPENSEARCH_DATA_DIR_LIST=/opensearch/data-1,/opensearch/data-2 ...
使用 Docker 容器网络,在容器内运行的 OpenSearch 服务器可以轻松被其他应用容器访问。
连接到同一网络的容器可以使用容器名称作为主机名相互通信。
步骤 1: 创建网络
consoledocker network create app-tier --driver bridge
步骤 2: 启动 OpenSearch 服务器实例
使用 --network app-tier 参数将 OpenSearch 容器附加到 app-tier 网络:
consoledocker run -d --name opensearch-server \ --network app-tier \ bitnami/opensearch:latest
步骤 3: 启动应用容器
consoledocker run -d --name myapp \ --network app-tier \ YOUR_APPLICATION_IMAGE
重要提示:
- 请将上述代码段中的 YOUR_APPLICATION_IMAGE 占位符替换为您的应用程序镜像
- 在应用容器中,使用主机名
opensearch-server连接到 OpenSearch 服务器
未指定时,Docker Compose 会自动设置一个新网络并将所有部署的服务附加到该网络。以下示例中,我们显式定义一个名为 app-tier 的新 bridge 网络,并假设您希望从自己的自定义应用程序镜像(在以下代码段中由服务名称 myapp 标识)连接到 OpenSearch 服务器:
yamlversion: '2' networks: app-tier: driver: bridge services: opensearch: image: bitnami/opensearch:latest networks: - app-tier myapp: image: YOUR_APPLICATION_IMAGE networks: - app-tier
重要提示:
- 请将上述代码段中的 YOUR_APPLICATION_IMAGE 占位符替换为您的应用程序镜像
- 在应用容器中,使用主机名
opensearch连接到 OpenSearch 服务器
启动容器:
consoledocker-compose up -d
可自定义环境变量
| 名称 | 描述 | 默认值 |
|---|---|---|
OPENSEARCH_CERTS_DIR | 证书文件夹路径 | ${DB_CONF_DIR}/certs |
OPENSEARCH_DATA_DIR_LIST | 用于数据存储的目录列表,以逗号、分号或空格分隔 | nil |
OPENSEARCH_BIND_ADDRESS | OpenSearch 绑定地址 | nil |
OPENSEARCH_ADVERTISED_HOSTNAME | OpenSearch 广播主机名,用于发布 | nil |
OPENSEARCH_CLUSTER_HOSTS | OpenSearch 集群主机 | nil |
OPENSEARCH_CLUSTER_MASTER_HOSTS | OpenSearch 集群主节点主机 | nil |
OPENSEARCH_CLUSTER_NAME | OpenSearch 集群名称 | nil |
OPENSEARCH_HEAP_SIZE | OpenSearch 堆大小 | 1024m |
OPENSEARCH_MAX_ALLOWED_MEMORY_PERCENTAGE | OpenSearch 最大允许内存百分比 | 100 |
OPENSEARCH_MAX_ALLOWED_MEMORY | OpenSearch 最大允许内存量(以兆字节为单位) | nil |
OPENSEARCH_MAX_TIMEOUT | OpenSearch 最大初始化超时时间 | 60 |
OPENSEARCH_LOCK_ALL_MEMORY | 设置 bootstrap.memory_lock 参数 | no |
OPENSEARCH_DISABLE_JVM_HEAP_DUMP | 禁用 JVM 堆转储 | no |
OPENSEARCH_DISABLE_GC_LOGS | 禁用 GC 日志 | no |
OPENSEARCH_IS_DEDICATED_NODE | 如果为 false,OpenSearch 将配置所有角色,使用 DB_NODE_ROLES 部署为专用节点 | no |
OPENSEARCH_MINIMUM_MASTER_NODES | 最小主节点数 | nil |
OPENSEARCH_NODE_NAME | OpenSearch 节点名称 | nil |
OPENSEARCH_FS_SNAPSHOT_REPO_PATH | 从系统存储库恢复快照的 OpenSearch 存储库路径 | nil |
OPENSEARCH_NODE_ROLES | 以逗号分隔的 OpenSearch 角色列表。如果为空,将部署为仅协调节点 | nil |
OPENSEARCH_PLUGINS | 要激活的 OpenSearch 插件列表 | nil |
OPENSEARCH_TRANSPORT_PORT_NUMBER | OpenSearch 节点端口号 | 9300 |
OPENSEARCH_HTTP_PORT_NUMBER | OpenSearch HTTP 端口 | 9200 |
OPENSEARCH_ACTION_DESTRUCTIVE_REQUIRES_NAME | 启用危险操作需要名称确认 | nil |
OPENSEARCH_ENABLE_SECURITY | 启用 OpenSearch 安全设置 | false |
OPENSEARCH_PASSWORD | "admin" 用户的密码 | bitnami |
OPENSEARCH_TLS_VERIFICATION_MODE | 传输层中的 OpenSearch TLS 验证模式 | full |
OPENSEARCH_TLS_USE_PEM | 使用 PEM 证书配置安全设置 | false |
OPENSEARCH_KEYSTORE_PASSWORD | 包含证书或受密码保护的 PEM 密钥的 OpenSearch 密钥库密码 | nil |
OPENSEARCH_TRUSTSTORE_PASSWORD | OpenSearch 信任库密码 | nil |
OPENSEARCH_KEY_PASSWORD | OpenSearch 节点 PEM 密钥的密码 | nil |
OPENSEARCH_KEYSTORE_LOCATION | 密钥库路径 | ${DB_CERTS_DIR}/opensearch.keystore.jks |
OPENSEARCH_TRUSTSTORE_LOCATION | 信任库路径 | ${DB_CERTS_DIR}/opensearch.truststore.jks |
OPENSEARCH_NODE_CERT_LOCATION | PEM 节点证书路径 | ${DB_CERTS_DIR}/tls.crt |
OPENSEARCH_NODE_KEY_LOCATION | PEM 节点密钥路径 | ${DB_CERTS_DIR}/tls.key |
OPENSEARCH_CA_CERT_LOCATION | CA 证书路径 | ${DB_CERTS_DIR}/ca.crt |
OPENSEARCH_SKIP_TRANSPORT_TLS | 跳过传输层 TLS 配置。在部署单节点集群时很有用 | false |
OPENSEARCH_TRANSPORT_TLS_USE_PEM | 使用 PEM 证书配置传输层 TLS 设置 | $DB_TLS_USE_PEM |
OPENSEARCH_TRANSPORT_TLS_KEYSTORE_PASSWORD | 包含证书或受密码保护的 PEM 密钥的 OpenSearch 传输层 TLS 密钥库密码 | $DB_KEYSTORE_PASSWORD |
OPENSEARCH_TRANSPORT_TLS_TRUSTSTORE_PASSWORD | OpenSearch 传输层 TLS 信任库密码 | $DB_TRUSTSTORE_PASSWORD |
OPENSEARCH_TRANSPORT_TLS_KEY_PASSWORD | OpenSearch 传输层 TLS 节点 PEM 密钥密码 | $DB_KEY_PASSWORD |
OPENSEARCH_TRANSPORT_TLS_KEYSTORE_LOCATION | 传输层 TLS 的密钥库路径 | $DB_KEYSTORE_LOCATION |
OPENSEARCH_TRANSPORT_TLS_TRUSTSTORE_LOCATION | 传输层 TLS 的信任库路径 | $DB_TRUSTSTORE_LOCATION |
OPENSEARCH_TRANSPORT_TLS_NODE_CERT_LOCATION | 传输层 TLS 的 PEM 节点证书路径 | $DB_NODE_CERT_LOCATION |
OPENSEARCH_TRANSPORT_TLS_NODE_KEY_LOCATION | 传输层 TLS 的 PEM 节点密钥路径 | $DB_NODE_KEY_LOCATION |
OPENSEARCH_TRANSPORT_TLS_CA_CERT_LOCATION | 传输层 TLS 的 CA 证书路径 | $DB_CA_CERT_LOCATION |
OPENSEARCH_ENABLE_REST_TLS | 为 REST API 通信启用 TLS 加密 | true |
OPENSEARCH_HTTP_TLS_USE_PEM | 使用 PEM 证书配置 HTTP TLS 设置 | $DB_TLS_USE_PEM |
OPENSEARCH_HTTP_TLS_KEYSTORE_PASSWORD | 包含证书或受密码保护的 PEM 密钥的 OpenSearch HTTP TLS 密钥库密码 | $DB_KEYSTORE_PASSWORD |
OPENSEARCH_HTTP_TLS_TRUSTSTORE_PASSWORD | OpenSearch HTTP TLS 信任库密码 | $DB_TRUSTSTORE_PASSWORD |
OPENSEARCH_HTTP_TLS_KEY_PASSWORD | OpenSearch HTTP TLS 节点 PEM 密钥密码 | $DB_KEY_PASSWORD |
OPENSEARCH_HTTP_TLS_KEYSTORE_LOCATION | HTTP TLS 的密钥库路径 | $DB_KEYSTORE_LOCATION |
OPENSEARCH_HTTP_TLS_TRUSTSTORE_LOCATION | HTTP TLS 的信任库路径 | $DB_TRUSTSTORE_LOCATION |
OPENSEARCH_HTTP_TLS_NODE_CERT_LOCATION | HTTP TLS 的 PEM 节点证书路径 | $DB_NODE_CERT_LOCATION |
OPENSEARCH_HTTP_TLS_NODE_KEY_LOCATION | HTTP TLS 的 PEM 节点密钥路径 | $DB_NODE_KEY_LOCATION |
OPENSEARCH_HTTP_TLS_CA_CERT_LOCATION | HTTP TLS 的 CA 证书路径 | $DB_CA_CERT_LOCATION |
OPENSEARCH_SECURITY_DIR | OpenSearch Security 插件的根目录 | ${DB_PLUGINS_DIR}/opensearch-security |
OPENSEARCH_SECURITY_CONF_DIR | OpenSearch Security 插件的配置目录 | ${DB_CONF_DIR}/opensearch-security |
OPENSEARCH_DASHBOARDS_PASSWORD | OpenSearch-dashboards 用户的密码 | bitnami |
LOGSTASH_PASSWORD | Logstash 用户的密码 | bitnami |
OPENSEARCH_SET_CGROUP | 使用 cgroup 层次结构覆盖配置 OpenSearch java 选项,使 cgroup 统计信息在容器中可用 | true |
OPENSEARCH_SECURITY_BOOTSTRAP | 如果设置为 true,此节点将配置有引导 OpenSearch 安全配置的指令 | false |
OPENSEARCH_SECURITY_NODES_DN | 包含允许的 OpenSearch 节点 TLS DN 的逗号分隔列表 | nil |
OPENSEARCH_SECURITY_ADMIN_DN | 包含允许的 OpenSearch 管理员用户 TLS DN 的逗号分隔列表 | nil |
OPENSEARCH_SECURITY_ADMIN_CERT_LOCATION | OpenSearch 管理员 PEM 证书的路径 | ${DB_CERTS_DIR}/admin.crt |
OPENSEARCH_SECURITY_ADMIN_KEY_LOCATION | OpenSearch 管理员 PEM 密钥的路径 | ${DB_CERTS_DIR}/admin.key |
只读环境变量
| 名称 | 描述 | 值 |
|---|---|---|
DB_FLAVOR | 数据库类型。有效值:elasticsearch 或 opensearch | opensearch |
OPENSEARCH_VOLUME_DIR | 持久化基础目录 | /bitnami/opensearch |
OPENSEARCH_BASE_DIR | OpenSearch 安装目录 | /opt/bitnami/opensearch |
OPENSEARCH_CONF_DIR | OpenSearch 配置目录 | ${DB_BASE_DIR}/config |
将 Bitnami 应用部署为 Helm Charts 是在 Kubernetes 上使用我们的应用程序的最简单方法。有关安装的更多信息,请参阅 https://github.com/bitnami/charts/tree/master/bitnami/opensearch%E3%80%82
非 root 容器镜像增加了一层安全性,通常推荐用于生产环境。但是,由于它们以非 root 用户身份运行,通常无法执行特权任务。在我们的 文档 中了解有关非 root 容器的更多信息。
以下是 bitnami/opensearch 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。


来自真实用户的反馈,见证轩辕镜像的优质服务