docker-elasticsearch-mac

61 阅读1分钟

查镜像

docker search elasticsearch --limit 10 

拉取镜像

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://github.com/medcl/elasticsearch-analysis-ik/releases
下载与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://127.0.0.1:9200

<p>请求头参数header
Content-Type:application/json
Authorization:Basic ZWxhc3RpYzplbGFzdGlj

tips:Authorization的值需要加上[Basic ]