下载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```shelldocker 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.删除nginxdocker stop nginxdocker 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 esvi fenci.txt#6.配置es分词库地址cd /pligins/configvi IKAnalyzer.cfg.xml#7.重启esdocker 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.先停止之前的esdocker stop 4914#2.删除之前的esdocker 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



