1. 下载es镜像

    1. docker pull elasticsearch:7.4.2
  2. 安装es可视化工具 两个版本需保持一致

    1. docker pull kibana:7.4.2
  3. 创建本地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后台启动

  1. 4. 如图安装成功
  2. ![image.png](https://cdn.nlark.com/yuque/0/2022/png/23007504/1648202497797-66877a6e-e05e-4bce-9574-9cfbe0c5a770.png#clientId=u83bcc332-8bcf-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=357&id=u54acfb1a&margin=%5Bobject%20Object%5D&name=image.png&originHeight=446&originWidth=763&originalType=binary&ratio=1&rotation=0&showTitle=false&size=21931&status=done&style=none&taskId=ubdb964d6-9fad-4b2d-9f1e-38cc4b05789&title=&width=610.4)
  3. 5. 安装kibana
  4. ```shell
  5. docker run --name kibana -e ELASTICSEARCH_HOSTS=http://192.168.56.175:9200 -p 5601:5601 -d kibana:7.4.2
  1. 安装ik分词器 版本需要和es版本一致 此处都用7.4.2

    1. #下载地址
    2. https://github.com/medcl/elasticsearch-analysis-ik/releases?after=v7.5.0&page=5
    3. #选择7.4.2版本下载
    4. wget https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.2/elasticsearch-analysis-ik-7.4.2.zip
    5. #解压并重命名
    6. unzip elasticsearch-analysis-ik-7.4.2.zip -d ik
    7. #赋予读写权限
    8. chmod -R 777 ik/
    9. #安装完毕 可进去容器查看
    10. docker restart es容器

    测试效果
    image.png

  2. 自定义扩展分词库 ->配置分词库地址 ->安装nginx配置访问分词库文件

    1. #1.安装nginx mydata/文件夹下新建nginx/conf目录
    2. docker run -p 80:80 --name nginx -d nginx:1.10
    3. 此命令如果本地没有镜像的话会先去下载镜像并启动
    4. #2.移动nginx/etc下的目录到 本地nginx/conf下
    5. docker container cp nginx:/etc/nginx .
    6. #3.删除nginx
    7. docker stop nginx
    8. docker rm nginx
    9. #4.重新启动nginx 并配置映射
    10. docker run -p 80:80 --name nginx \
    11. -v /mydata/nginx/html:/usr/share/nginx/html \
    12. -v /mydata/nginx/logs:/var/log/nginx \
    13. -v /mydata/nginx/conf:/etc/nginx \
    14. -d nginx:1.10
    15. #5.配置es分词库
    16. mkdir es
    17. vi fenci.txt
    18. #6.配置es分词库地址
    19. cd /pligins/config
    20. vi IKAnalyzer.cfg.xml
    21. #7.重启es
    22. docker restart elasticsearch

    image.png
    image.png
    image.png
    image.png

    FAQ

  3. 启动几秒后又自动挂了 ```shell

    查看日志

    docker logs —tail 200 elasticsearch

“Caused by: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes”

出现此错误是因为data文件夹没有权限

chmod -R 777 /mydata/elasticsearch/

改为所有用户都有读写曲线

  1. 2. 关于es重新定义内存问题
  2. ```shell
  3. #1.先停止之前的es
  4. docker stop 4914
  5. #2.删除之前的es
  6. docker rm 4914
  7. #3.重新启动es分配对应内存 文件夹指定原来的文件夹(保证原有数据不丢失)
  8. docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
  9. -e "discovery.type=single-node" \
  10. -e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
  11. -v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
  12. -v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
  13. -v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
  14. -d elasticsearch:7.4.2