在 Docker 中本地运行 Elasticsearch(无安全)
编辑在 Docker 中本地运行 Elasticsearch(无安全)编辑
不要将这些说明用于生产部署
此页面上的说明仅供 本地开发使用。不要将这些说明用于生产部署,因为它们不安全。虽然这种方法对于实验和学习很方便,但您永远不应该在生产环境中以这种方式运行服务。
以下命令可帮助您快速启动一个单节点 Elasticsearch 集群,以及 Docker 中的 Kibana。请注意,如果您不需要 Kibana UI,则可以跳过这些说明。
我什么时候会使用这种设置?编辑
如果您想快速启动 Elasticsearch(和 Kibana)以进行本地开发或测试,请使用此设置。
例如,您可能
- 想要运行一个快速测试以查看功能如何工作。
- 遵循需要 Elasticsearch 集群的教程或指南,例如我们的 快速入门指南。
- 使用不同的工具(如 Dev Tools 控制台、cURL 或 Elastic 编程语言客户端)实验 Elasticsearch API。
- 快速启动一个 Elasticsearch 集群以测试可执行的 Python 笔记本 在本地。
先决条件编辑
如果您没有安装 Docker,请 下载并安装 Docker Desktop 用于您的操作系统。
设置环境变量编辑
配置以下环境变量。
export ELASTIC_PASSWORD="<ES_PASSWORD>" # password for "elastic" username export KIBANA_PASSWORD="<KIB_PASSWORD>" # Used _internally_ by Kibana, must be at least 6 characters long
创建 Docker 网络编辑
要运行 Elasticsearch 和 Kibana,您需要创建一个 Docker 网络
docker network create elastic-net
运行 Elasticsearch编辑
使用以下命令启动 Elasticsearch 容器
docker run -p 127.0.0.1:9200:9200 -d --name elasticsearch --network elastic-net \ -e ELASTIC_PASSWORD=$ELASTIC_PASSWORD \ -e "discovery.type=single-node" \ -e "xpack.security.http.ssl.enabled=false" \ -e "xpack.license.self_generated.type=trial" \ docker.elastic.co/elasticsearch/elasticsearch:8.14.2
运行 Kibana(可选)编辑
要运行 Kibana,您必须首先在 Elasticsearch 容器中设置 kibana_system
密码。
# configure the Kibana password in the ES container curl -u elastic:$ELASTIC_PASSWORD \ -X POST \ https://127.0.0.1:9200/_security/user/kibana_system/_password \ -d '{"password":"'"$KIBANA_PASSWORD"'"}' \ -H 'Content-Type: application/json'
使用以下命令启动 Kibana 容器
docker run -p 127.0.0.1:5601:5601 -d --name kibana --network elastic-net \ -e ELASTICSEARCH_URL=http://elasticsearch:9200 \ -e ELASTICSEARCH_HOSTS=http://elasticsearch:9200 \ -e ELASTICSEARCH_USERNAME=kibana_system \ -e ELASTICSEARCH_PASSWORD=$KIBANA_PASSWORD \ -e "xpack.security.enabled=false" \ -e "xpack.license.self_generated.type=trial" \ docker.elastic.co/kibana/kibana:8.14.2
该服务使用试用许可证启动。试用许可证使 Elasticsearch 的所有功能在 30 天的试用期内可用。试用期结束后,许可证将降级为基本许可证,该许可证永久免费。如果您希望跳过试用并使用基本许可证,请将 xpack.license.self_generated.type
变量的值设置为 basic。有关不同许可证之间功能比较的详细信息,请参阅我们的 订阅页面。
使用语言客户端连接到 Elasticsearch编辑
要从语言客户端连接到 Elasticsearch 集群,您可以使用 elastic
用户名和您在环境变量中设置的密码进行基本身份验证。
您将使用以下连接详细信息
-
Elasticsearch 端点:
https://127.0.0.1:9200
-
用户名:
elastic
-
密码:
$ELASTIC_PASSWORD
(您在环境变量中设置的值)
例如,要使用 Python elasticsearch
客户端连接
import os from elasticsearch import Elasticsearch username = 'elastic' password = os.getenv('ELASTIC_PASSWORD') # Value you set in the environment variable client = Elasticsearch( "https://127.0.0.1:9200", basic_auth=(username, password) ) print(client.info())
以下是一个使用基本身份验证的 curl 命令示例
curl -u elastic:$ELASTIC_PASSWORD \ -X PUT \ https://127.0.0.1:9200/my-new-index \ -H 'Content-Type: application/json'
下一步编辑
使用我们的 快速入门指南 了解 Elasticsearch 的基础知识:如何添加数据并查询数据。
迁移到生产环境编辑
此设置不适合生产使用。对于生产部署,我们建议使用 Elastic Cloud 上的托管服务。 注册免费试用(不需要信用卡)。
否则,请参阅 安装 Elasticsearch 了解在自管理生产环境中安装 Elasticsearch 的各种选项,包括使用 Docker。