docker下安装Elasticsearch设置账号密码的步骤记录

 更新时间:2025年04月26日 11:09:33   投稿:daisy  
这篇文章主要介绍了docker下安装Elasticsearch设置账号密码的步骤,包括拉取镜像、创建配置文件和用户密码文件、挂载文件到容器、使用Kibana或API创建用户、验证配置、以及持久化数据和日志,需要的朋友可以参考下

在 Docker 中安装 Elasticsearch 并设置账号密码涉及以下步骤:

1. 拉取 Elasticsearch 镜像

确保你已经拉取了 Elasticsearch 的官方镜像。例如:

docker pull elasticsearch:7.10.2

2. 创建配置文件

在本地创建一个配置文件 elasticsearch.yml,用于启用安全功能并设置基本认证。

示例内容如下:

# 启用安全功能
xpack.security.enabled: true

# 设置默认的管理员用户名和密码(如果需要)
xpack.security.authc.realms.file1:
  order: 0
  file: ${ES_HOME}/config/users.yml

注意:Elasticsearch 7.x 及以上版本默认启用了安全功能,但你可以通过上述配置文件进一步调整。

3. 创建用户账户和密码

在本地创建一个 users.yml 文件,用于定义用户的认证信息。例如:

# 用户名: 密码(加密格式)
elastic:
  hash: $2a$10$f5rEoBvQ5jZnD6GhIuKLmuzF7gqTlPwJ9kXsY8eD9pOcWdQz1AxBc
# 示例密码:elastic

注意hash 是加密后的密码。你可以使用在线工具(如 bcrypt)生成 bcrypt 哈希值。

4. 挂载配置文件到 Docker 容器

使用 Docker 运行 Elasticsearch,并挂载本地的 elasticsearch.yml 和 users.yml 文件到容器中。

示例命令:

docker run -p 9200:9200 -p 9300:9300 \
  --name elasticsearch-security \
  -v /path/to/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
  -v /path/to/users.yml:/usr/share/elasticsearch/config/users.yml \
  -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
  elasticsearch:7.10.2

5. 使用 Kibana 创建用户(可选)

如果你启用了 Elasticsearch 的安全功能,可以通过 Kibana 创建用户和角色。

  • 拉取并运行 Kibana:

    docker run -p 5601:5601 --link elasticsearch-security:kibana_elasticsearch --name kibana elasticsearch/kibana:7.10.2
    
  • 打开浏览器,访问 http://localhost:5601

  • 在 Kibana 中,进入 “Management” -> “Security” -> “Users”,创建新的用户和密码。

6. 通过 API 创建用户(可选)

如果你不想使用 Kibana,也可以通过 Elasticsearch 的 REST API 创建用户。例如:

curl -X POST http://localhost:9200/_security/user/admin \
  -H "Content-Type: application/json" \
  -u elastic:ElasticPassword \
  -d '{
        "username": "admin",
        "password": "Admin@123",
        "roles": ["superuser"]
      }'

7. 验证账号密码是否生效

使用基本认证访问 Elasticsearch:

curl -u elastic:ElasticPassword http://localhost:9200

如果返回正常的 JSON 响应,则说明账号密码配置成功。

8. 持久化数据和日志(可选)

为了防止容器重启后数据丢失,可以将 Elasticsearch 的数据目录和日志目录挂载到宿主机:

docker run -p 9200:9200 -p 9300:9300 \
  --name elasticsearch-security \
  -v /path/to/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
  -v /path/to/users.yml:/usr/share/elasticsearch/config/users.yml \
  -v /path/to/es-data:/usr/share/elasticsearch/data \
  -v /path/to/es-logs:/usr/share/elasticsearch/logs \
  -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \
  elasticsearch:7.10.2

总结

通过上述步骤,你可以在 Docker 中运行 Elasticsearch 并启用账号密码认证。默认情况下,Elasticsearch 7.x 及以上版本已经启用了安全功能,但你需要通过配置文件和用户管理工具(如 Kibana 或 REST API)来设置具体的用户和权限。

如果你需要进一步增强安全性,可以考虑:

  • 启用 HTTPS
  • 配置防火墙规则
  • 使用更复杂的密码策略

到此这篇关于docker下安装Elasticsearch设置账号密码的文章就介绍到这了,更多相关docker安装es设置账号密码内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker如何配置镜像加速器

    docker如何配置镜像加速器

    文章介绍了在Coding中遇到自动构建容器失败的问题,最终通过配置阿里云的镜像加速器和使用Docker Buildx解决了问题
    2024-12-12
  • 将Docker容器打包并在其他服务器上运行的全过程

    将Docker容器打包并在其他服务器上运行的全过程

    Docker容器使得应用程序的部署和管理变得更加简单和高效,有时,我们可能需要将一个运行中的Docker容器打包,并在其他服务器上运行,本文将详细介绍如何实现这一过程,需要的朋友可以参考下
    2024-05-05
  • Docker本地部署Drupal并实现公网访问的详细步骤

    Docker本地部署Drupal并实现公网访问的详细步骤

    Drupal是使用PHP语言编写的开源内容管理框架(CMF),它由内容管理系统(CMS)和PHP开发框架(Framework)共同构成,这篇文章主要给大家介绍了关于Docker本地部署Drupal并实现公网访问的详细步骤,需要的朋友可以参考下
    2023-12-12
  • Docker部署MinIO对象存储服务器结合Cpolar实现远程访问的操作方法

    Docker部署MinIO对象存储服务器结合Cpolar实现远程访问的操作方法

    MinIO是一个开源的软件,可以免费使用,还可以在普通硬件上运行,降低了存储成本,本文介绍在本地Docker中部署MinIO服务,并实现远程访问管理界面,节约云服务器运行成本,感兴趣的朋友一起看看吧
    2023-12-12
  • docker中如何启动已存在容器

    docker中如何启动已存在容器

    这篇文章主要介绍了docker中如何启动已存在容器问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • Docker-compose 建立ELK集群的实现方法

    Docker-compose 建立ELK集群的实现方法

    这篇文章主要介绍了Docker-compose 建立ELK集群的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-01-01
  • Docker挂载/etc/timezone报错问题

    Docker挂载/etc/timezone报错问题

    这篇文章主要介绍了Docker挂载/etc/timezone报错问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-11-11
  • Mysql 在 Docker 中的时区问题记录

    Mysql 在 Docker 中的时区问题记录

    Mysql 时区一般是跟着系统走的,而在 Docker 中安装 Mysql 默认时区是 UTC,下面介绍,创建Docker容器前、后,分别如何设置 Mysql 时区,感兴趣的朋友跟随小编一起看看吧
    2024-07-07
  • Docker 打包 K8s镜像的应用实例

    Docker 打包 K8s镜像的应用实例

    文章介绍了如何使用Docker打包和部署Kubernetes镜像,包括准备工作、创建Dockerfile、构建镜像、测试运行、推送镜像、Kubernetes部署文件示例、部署到Kubernetes等步骤,并提供了注意事项和最佳实践,感兴趣的朋友一起看看吧
    2025-03-03
  • 如何批量删除Docker中已经停止的容器的几种方法

    如何批量删除Docker中已经停止的容器的几种方法

    本文主要介绍了批量删除Docker中已经停止的容器的几种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05

最新评论