bitnami/opensearchOpenSearch 是一个可扩展的开源解决方案,用于搜索、分析和可观测性。它支持全文查询、自然语言处理、自定义词典等功能。
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
如需使用特定版本,可拉取带版本标签的镜像。您可以在 Docker Hub Registry 查看可用版本列表:
consoledocker pull bitnami/opensearch:[TAG]
如果需要,您也可以通过克隆仓库、进入包含 Dockerfile 的目录并执行 docker build 命令来自行构建镜像:
consolegit clone [***] 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
或对仓库中提供的 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 服务器可以轻松被其他应用容器访问。
连接到同一网络的容器可以使用容器名称作为主机名相互通信。
consoledocker network create app-tier --driver bridge
使用 --network app-tier 参数将 OpenSearch 容器附加到 app-tier 网络:
consoledocker run -d --name opensearch-server \ --network app-tier \ bitnami/opensearch:latest
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 上使用我们的应用程序的最简单方法。有关安装的更多信息,请参阅 Bitnami OpenSearch Chart GitHub 仓库。
非 root 容器镜像增加了一层安全性,通常推荐用于生产环境。但是,由于它们以非 root 用户身份运行,通常无法执行特权任务。在我们的 文档 中了解有关非 root 容器的更多信息。

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务