在 Docker 中安装和配置带用户名和密码保护的 Elasticsearch 需要以下步骤。Elasticsearch 的安全功能(包括基本身份验证)在默认情况下是启用的,但在某些版本中可能需要手动配置。以下是详细步骤,包括如何设置用户名和密码。
确保你的系统已经安装 Docker 和 Docker Compose。如果没有,请参考以下命令进行安装。
sudo apt-get update sudo apt-get install -y docker.io docker-compose sudo yum install -y docker docker-compose 启动 Docker 服务:
sudo systemctl start docker sudo systemctl enable docker 从 Docker Hub 拉取 Elasticsearch 镜像:
docker pull elasticsearch:8.8.2
exit docker stop elasticsearch-temp docker rm elasticsearch-temp Elasticsearch 8.x 默认启用了安全功能,包括基本身份验证。你可以使用 elasticsearch-setup-passwords 工具来设置内置用户的密码。
docker run -d --name elasticsearch-temp -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:8.8.2 等待几秒钟,直到 Elasticsearch 容器启动并准备好。然后,运行以下命令进入容器并设置密码:
docker exec -it elasticsearch-temp /bin/bash
在容器内,运行以下命令:
elasticsearch-setup-passwords interactive 按照提示为内置用户(如 elastic、kibana_system、logstash_system 等)设置密码。设置完成后,记下这些密码,因为你将在配置文件中需要使用它们。
退出并停止临时容器:
exit docker stop elasticsearch-temp docker rm elasticsearch-temp 在宿主机上创建一个目录,用于存储 Elasticsearch 数据。例如,创建目录 /path/to/your/esdata:
mkdir -p /path/to/your/esdata sudo chown -R 1000:1000 /path/to/your/esdata 创建一个 docker-compose.yml 文件,配置 Elasticsearch 服务,并包含用户名和密码配置。
version: '3' services: elasticsearch: image: elasticsearch:8.8.2 container_name: elasticsearch environment: - discovery.type=single-node - ELASTIC_PASSWORD=your_elastic_password # 设置 elastic 用户的密码 ports: - "9200:9200" - "9300:9300" volumes: - /path/to/your/esdata:/usr/share/elasticsearch/data 确保将 your_elastic_password 替换为之前设置的 elastic 用户的密码。
在 docker-compose.yml 文件所在目录中运行以下命令启动 Elasticsearch 服务:
docker-compose up -d 使用以下命令验证 Elasticsearch 是否成功启动并配置了用户名和密码:
curl -u elastic:your_elastic_password http://localhost:9200 你应该会看到类似以下的 JSON 响应:
{ "name" : "your-node-name", "cluster_name" : "docker-cluster", "cluster_uuid" : "some-uuid", "version" : { "number" : "8.8.2", ... }, ... } 通过以上步骤,你可以在 Docker 中成功安装并配置带用户名和密码保护的 Elasticsearch。使用 Docker Compose 可以更方便地管理和启动服务,并确保数据的持久性。如果需要进一步配置或优化 Elasticsearch,请参考官方文档。
上一篇:三星手机进入安全系统更新
下一篇:鸿蒙OpenHarmony Native API【native_interface_bundle.h与native_interface_xcompo】 头文件