下载es镜像
docker pull elasticsearch:7.4.2
安装es可视化工具 两个版本需保持一致
docker pull kibana:7.4.2
创建本地es配置文件夹和数据文件夹 ```shell mkdir -p /mydata/elasticsearch/config mkdir -p /mydata/elasticsearch/data
配置es外部任意ip可访问
echo “http.host:0.0.0.0”>> /mydata/elasticsearch/config/elasticsearch.yml docker run —name elasticsearch -p 9200:9200 -p 9300:9300 \ -e “discovery.type=single-node” \ -e ES_JAVA_OPTS=”-Xms64m -Xmx128m” \ -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \ -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \ -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \ -d elasticsearch:7.4.2
映射9200 9300端口
配置es启动模式为单机模式
配置es运行内存 实际开发中需要放大
挂载confif data plugins插件目录到本机
-d后台启动
4. 如图安装成功

5. 安装kibana
```shell
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.56.175:9200 -p 5601:5601 -d kibana:7.4.2
安装ik分词器 版本需要和es版本一致 此处都用7.4.2
#下载地址
https://github.com/medcl/elasticsearch-analysis-ik/releases?after=v7.5.0&page=5
#选择7.4.2版本下载
wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip
#解压并重命名
unzip elasticsearch-analysis-ik-7.4.2.zip -d ik
#赋予读写权限
chmod -R 777 ik/
#安装完毕 可进去容器查看
docker restart es容器
测试效果
自定义扩展分词库 ->配置分词库地址 ->安装nginx配置访问分词库文件
#1.安装nginx mydata/文件夹下新建nginx/conf目录
docker run -p 80:80 --name nginx -d nginx:1.10
此命令如果本地没有镜像的话会先去下载镜像并启动
#2.移动nginx/etc下的目录到 本地nginx/conf下
docker container cp nginx:/etc/nginx .
#3.删除nginx
docker stop nginx
docker rm nginx
#4.重新启动nginx 并配置映射
docker run -p 80:80 --name nginx \
-v /mydata/nginx/html:/usr/share/nginx/html \
-v /mydata/nginx/logs:/var/log/nginx \
-v /mydata/nginx/conf:/etc/nginx \
-d nginx:1.10
#5.配置es分词库
mkdir es
vi fenci.txt
#6.配置es分词库地址
cd /pligins/config
vi IKAnalyzer.cfg.xml
#7.重启es
docker restart elasticsearch
FAQ
启动几秒后又自动挂了 ```shell
查看日志
docker logs —tail 200 elasticsearch
“Caused by: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes”
出现此错误是因为data文件夹没有权限
chmod -R 777 /mydata/elasticsearch/
改为所有用户都有读写曲线
2. 关于es重新定义内存问题
```shell
#1.先停止之前的es
docker stop 4914
#2.删除之前的es
docker rm 4914
#3.重新启动es分配对应内存 文件夹指定原来的文件夹(保证原有数据不丢失)
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2