docker network create es-net
docker network rm es-net
docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" --network es-net elasticsearch:8.10.2
docker cp es:/usr/share/elasticsearch/config/elasticsearch.yml ./elasticsearch.yml
cluster.name: "docker-cluster"
network.host: 0.0.0.0
# 配置远程访问
http.host: 0.0.0.0
# 因为elasticsearch与elasticsearch-head工具是前后端分离项目,所以需要处理跨域问题
http.cors.enabled: true
http.cors.allow-origin: "*"
# 开启账户密码验证
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx1024m" -v /Users/xin/docker/elasticsearch/data:/usr/share/elasticsearch/data -v /Users/xin/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins -v /Users/xin/docker/elasticsearch/config:/usr/share/elasticsearch/config -v /Users/xin/docker/elasticsearch/logs:/usr/share/elasticsearch/logs --network es-net elasticsearch:8.10.2
#-m :设置容器使用内存最大值;
#-d :后台运行容器,并返回容器ID;
#--name : 容器命名;
#-p :端口映射 第一个端口是宿主机端口,第二个端口是容器端口;
#-v : 把es的配置文件映射到宿主机的指定目录了;
#--net/--network :桥接名,这个需要提前创建,加到同一个网络桥接里的容器可以互相通过容器名ping通;
#--restart : 容器重启模式;
#-e :设置环境变量;
#elasticsearch:8.1.0 :如果只是写elasticsearch,tag就是latest;
设置elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user 这些用户的密码
docker exec -it es elasticsearch-setup-passwords interactive
此处如果设置密码 ,需要将 xpack.security.enabled: false
设置为 false,否则访问不到es节点。
Kibana报错:Unable to retrieve version information from Elasticsearch nodes
elasticsearch@882e202cff35:~$ elasticsearch-setup-passwords interactive
******************************************************************************
Note: The 'elasticsearch-setup-passwords' tool has been deprecated. This command will be removed in a future release.
******************************************************************************
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y
Enter password for [elastic]:
Reenter password for [elastic]:
Enter password for [apm_system]:
Reenter password for [apm_system]:
Enter password for [kibana_system]:
Reenter password for [kibana_system]:
Enter password for [logstash_system]:
Reenter password for [logstash_system]:
Enter password for [beats_system]:
Reenter password for [beats_system]:
Enter password for [remote_monitoring_user]:
Reenter password for [remote_monitoring_user]:
Changed password for user [apm_system]
Changed password for user [kibana_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]
访问http://192.168.1.3:9200 成功说明 es 安装成功;
https://github.com/medcl/elasticsearch-analysis-ik/releases 下载对应的版本,此处注意一定要和elasticsearch 版本对应起来,我的版本是 8.10.2 ,ik 的作者没有构建 8.10.2 的版本;因此 我通过 拉取 8.10.4 的版本 自己重新构建。
拉取 8.10.4 源码,直接下载zip
修改 pom 的版本号为。8.10.4
建议在idea 下打开,勾选 profiles 中的 release,执行 install 命令,生成的 zip 包在 target/release/elasticssearch-analysis-ik-8.10.2
install 完成后会报 /bin/sh: gpg: command not found
错误可以不用管
docker run -d --name kibana -e ELASTICSEARCH_HOSTS=http://es:9200 --network=es-net -p 5601:5601 kibana:8.10.2
docker cp kibana:/usr/share/kibana/config/ /Users/xin/docker/kibana/
server.name: kibana
# kibana的主机地址 0.0.0.0可表示监听所有IP
server.host: "0.0.0.0"
# kibana访问es的URL
elasticsearch.hosts: [ "http://es:9200" ]
elasticsearch.username: 'kibana'
elasticsearch.password: '123456'
# 显示登陆页面
xpack.monitoring.ui.container.elasticsearch.enabled: true
# 语言
i18n.locale: "zh-CN"
删除之前的,重新启动新的容器
docker run -d --name kibana -e ELASTICSEARCH_HOSTS=http://es:9200 -v /Users/xin/docker/kibana/config:/usr/share/kibana/config --network=es-net -p 5601:5601 kibana:8.10.2
http://192.168.1.3:5601/app/kibana/home