查镜像
docker search elasticsearch
拉取镜像
docker pull elasticsearch:7.10.1
新增elasticsearch.yml配置文件
<p>首次run容器需要创建配置elasticsearch.yml文件进行同步挂载
cd /var/folders/docker-elasticsearch-master/config/
vi elasticsearch.yml
elasticsearch.yml配置信息
network.host: 0.0.0.0
network.bind_host: 0.0.0.0 #外网可访问
http.cors.enabled: true
http.cors.allow-origin: "*"
xpack.security.enabled: true # 这条配置表示开启xpack认证机制 spring boot连接使用
xpack.security.transport.ssl.enabled: true
运行容器
<p>确认没有其他容器运行占用端口9200 9300
<p>运行容器
docker run -d --name elasticsearch-master -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms128m -Xmx256m" -v /var/folders/docker-elasticsearch-master/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /var/folders/docker-elasticsearch-master/data:/usr/share/elasticsearch/data -v /var/folders/docker-elasticsearch-master/plugins:/usr/share/elasticsearch/plugins --privileged elasticsearch:7.10.1
异常处理
<p>运行异常信息
java.lang.IllegalStateException:
Could not load plugin descriptor for plugin directory [.DS_Store]
<p>处理方案
进入plugins目录删除.DS_Store隐藏文件
cd plugins
ls -a:查看含隐藏文件的所有文件
rm -f .DS_Store
docker restart container_id
初始化密码
<p>进入容器交互
docker exec -it container_id /bin/bash
<p>设置密码
bin/elasticsearch-setup-passwords interactive
1 依次设置用户:elastic、apm_system、kibana_system、logstash_system、beats_system、remote_monitoring_user共6个用户的密码均为elastic
验证
访问localhost:9200
输入user:elastic password:elastic是否成功
安装插件
<p>分词器下载
https:
下载与es相同版本的分词器
<p>分词器安装
1 放于上文配置plugins路径,然后新建ik文件夹,将解压后的文件全部放于ik文件夹中
2 重启docker容器:docker restart container_id
Postman请求验证
生成身份验证的token
访问计算base64的在线工具,如:
https://www.base64encode.org/
以username:password计算生成token,如:elastic:elastic
result:ZWxhc3RpYzplbGFzdGlj
postman请求
<p>请求地址
http:
<p>请求头参数header
Content-Type:application/json
Authorization:Basic ZWxhc3RpYzplbGFzdGlj
tips:Authorization的值需要加上[Basic ]