✅ 一、准备工作
确认你已经安装了:
-
Docker(用 Docker Desktop for Mac)
-
命令行终端(Terminal)
✅ 二、拉取并运行 Elasticsearch 7.9.3 镜像
Elasticsearch 7.9.3 默认没有启用安全认证功能(x-pack security 默认关闭),所以你必须先手动启用安全功能才能设置用户名密码。
🐳 启动 ES 7.9.3(并开启认证):
bash
复制编辑
docker network create es-net docker run -d --name elasticsearch \ --net es-net \ -e "discovery.type=single-node" \ -e "xpack.security.enabled=true" \ -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" \ -p 9200:9200 \ -p 9300:9300 \ docker.elastic.co/elasticsearch/elasticsearch:7.9.3
✅ 三、设置用户密码
Elasticsearch 启动后,默认会有一个 elastic
用户,但密码是空的(不能登录),所以你需要生成密码。
🛠 步骤:
bash
复制编辑
# 进入容器 docker exec -it elasticsearch bash # 执行自动密码初始化命令 bin/elasticsearch-setup-passwords interactive
它会提示你一个个设置:
less
复制编辑
Initiating the setup of passwords for reserved users elastic,kibana,logstash_system. Enter password for [elastic]: Reenter password for [elastic]: ...
最重要的是记住你设置的 elastic
用户密码。
设置完后就可以退出容器了:
bash
复制编辑
exit
✅ 四、验证 Elasticsearch + 密码
你可以用 curl
验证一下是否设置成功:
bash
复制编辑
curl -u elastic:你的密码 http://localhost:9200
成功会返回类似:
json
复制编辑
{ "name" : "xxxxxxxx", "cluster_name" : "docker-cluster", ... }
✅ 五、可选:使用 Kibana 配合使用
如果你还想配一个 Kibana:
bash
复制编辑
docker run -d --name kibana \ --net es-net \ -e "ELASTICSEARCH_HOSTS=http://elasticsearch:9200" \ -e "ELASTICSEARCH_USERNAME=elastic" \ -e "ELASTICSEARCH_PASSWORD=你的密码" \ -p 5601:5601 \ docker.elastic.co/kibana/kibana:7.9.3
然后访问:
arduino
复制编辑
http://localhost:5601
4.3.安装IK分词器和sql插件
4.3.1.在线安装ik插件和sql插件(较慢)
# 进入容器内部 docker exec -it elasticsearch /bin/bash # 在线下载并安装
ik分词起:
bin/elasticsearch-plugin install https://get.infini.cloud/elasticsearch/analysis-ik/8.4.1
sql插件:
./bin/elasticsearch-plugin install https://github.com/NLPchina/elasticsearch-sql/releases/download/7.9.3.0/elasticsearch-sql-7.9.3.0.zip
#退出 exit #重启容器 docker restart elasticsearch
🧠 小总结:
步骤 | 说明 |
---|---|
拉镜像 | 使用官方的 elasticsearch:7.9.3 |
开启认证 | xpack.security.enabled=true |
设置密码 | elasticsearch-setup-passwords interactive |
验证 | curl -u elastic:密码 http://localhost:9200 |