启动一个单节点ES集群
1)安装Docker环境
1)安装Docker环境

2)创建一个新的docker网络
docker network create elastic3) 拉取ES的docker镜像
docker pull docker.elastic.co/elasticsearch/elasticsearch:8.17.0#如果拉取很慢,可以使用我的镜像docker pull registry.cn-hangzhou.aliyuncs.com/tulingfox/elasticsearch:8.17.0

4)启动Elasticsearch容器
docker run -d --name es01 --net elastic -p 9200:9200 -it -m 1GB docker.elastic.co/elasticsearch/elasticsearch:8.17.0#或者docker run -d --name es01 --net elastic -p 9200:9200 -it -m 1GB registry.cn-hangzhou.aliyuncs.com/tulingfox/elasticsearch:8.17.0
使用-m表示为容器设置内存限制,这样就不需要手动设置JVM大小。

如果想使用机器学习功能,可以用下面的命令启动容器:
docker run -d --name es01 --net elastic -p 9200:9200 -it -m 6GB -e "xpack.ml.use_auto_machine_memory_percent=true" docker.elastic.co/elasticsearch/elasticsearch:8.17.0该命令会打印Kibana的elastic用户密码和注册令牌
5)复制生成的elastic密码和注册令牌。这些凭证仅在第一次启动Elasticsearch时显示。可以使用以下命令重新生成凭据。
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elasticdocker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana

建议将elastic密码存储为shell中的环境变量:
export ELASTIC_PASSWORD="your_password"
6) 将 SSL 证书(http_ca.crt)从容器复制到本地机器。
docker cp es01:/usr/share/elasticsearch/config/certs/http_ca.crt .7)通过发送 REST API 请求来确认 Elasticsearch 容器是否正在正常运行。
curl --cacert http_ca.crt -u elastic:$ELASTIC_PASSWORD https://localhost:9200
1) 使用现有节点为新节点生成注册令牌。
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s node注册令牌的有效期为30分钟。

2) 启动一个新的Elasticsearch容器。将注册令牌作为环境变量。
docker run -e ENROLLMENT_TOKEN="" --name es02 --net elastic -it -m 1GB registry.cn-hangzhou.aliyuncs.com/tulingfox/elasticsearch:8.17.0token替换为第一步生成的注册令牌。
docker run -d -e ENROLLMENT_TOKEN="eyJ2ZXIiOiI4LjE0LjAiLCJhZHIiOlsiMTcyLjIxLjAuMjo5MjAwIl0sImZnciI6ImZlYWRjOTMxYTk1ZmQyNjUyM2Q4MTczNjQ4NGJiODAyZDllZWQ5ZTg0Y2I1N2Y5MDgzY2VhZDVjOGQ5MTBkZGMiLCJrZXkiOiJQcDdtOTVNQjNwWWk4UXVSVlFiRzoxV0laQ3BpbFJDaWJiZzlXeVdsa3F3In0=" --name es02 --net elastic -it -m 1GB registry.cn-hangzhou.aliyuncs.com/tulingfox/elasticsearch:8.17.0
3)调用cat nodes API来验证节点是否已添加到集群中。
curl --cacert http_ca.crt -u elastic:$ELASTIC_PASSWORD https://localhost:9200/_cat/nodes
1) 拉取Kibana Docker镜像。
docker pull docker.elastic.co/kibana/kibana:8.17.0#如果拉取很慢,可以使用我的镜像docker pull registry.cn-hangzhou.aliyuncs.com/tulingfox/kibana:8.17.0

2)启动Kibana容器
docker run -d --name kib01 --net elastic -p 5601:5601 docker.elastic.co/kibana/kibana:8.17.0#或者docker run -d --name kib01 --net elastic -p 5601:5601 registry.cn-hangzhou.aliyuncs.com/tulingfox/kibana:8.17.0


要访问Kibana,可以在web浏览器中打开此链接。

3)在浏览器中,输入启动Elasticsearch时生成的注册令牌。
要重新生成令牌,可以运行:
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
输入注册令牌后会弹出提示,需要输入验证码

执行下面的命令获取验证码
docker exec -it kib01 /usr/share/kibana/bin/kibana-verification-code
输入验证码后开始配置

配置完成后进入kibana登录界面

4)以elastic用户登录Kibana,使用启动Elasticsearch时生成的密码。
要重新生成密码,可以运行:
docker exec -it es01 /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic