下载 Elasticsearch 镜像
docker pull elasticsearch:6.8.0
运行 Elasticsearch 镜像
docker run -d --name es -p 9200:9200 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms200m -Xmx200m" elasticsearch:6.8.0
-d:以后台的方式运行;
--name es:指定容器的名称为 es;
-p 9200:9200 将容器的 9200 端口挂载到宿主机的 9200 端口上;
-e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms200m -Xmx200m":指定为单节点
模式,JVM 内存占用 200m
复制相关文件
# 复制 es 配置文件目录到宿主机指定目录,目标目录你可以根据需要,自行修改
# 创建本地目录 mkdir -p/Users/ethanxu/Ethan/Docker
/elasticsearch6
# 复制 es 配置目录到宿主机指定目录
docker cp es:/usr/share/elasticsearch/config /Users/ethanxu/Ethan/Docker
/elasticsearch6
# 复制 es 持久化数据目录到宿主机指定目录
docker cp es:/usr/share/elasticsearch/data
/Users/ethanxu/Ethan/Docker
/elasticsearch6
# 复制 es 插件目录到宿主机指定目录
docker cp es:/usr/share/elasticsearch/plugins
/Users/ethanxu/Ethan/Docker
/elasticsearch6
# 设置本地目录权限,避免容器内无法同步本地目录修改
chmod -R 777/Users/ethanxu/Ethan/Docker
/elasticsearch6
重新部署容器
# 删除旧容器 docker rm -f es # 启动容器,挂载本地目录 docker run -d -p 9200:9200 -v /Users/ethanxu/Ethan/Docker/elasticsearch6/config:/usr/share/elasticsearch/config -v /Users/ethanxu/Ethan/Docker/elasticsearch6/data:/usr/share/elasticsearch/data -v /Users/ethanxu/Ethan/Docker/elasticsearch6/plugins:/usr/share/elasticsearch/plugins -e "discovery.type=single-node" --name es elasticsearch:6.8.0
安装 analysis-ik 中文分词插件
docker exec -it es /bin/bash
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.8.0/elasticsearch-analysis-ik-6.8.0.zip
exit
修改 es 相关配置
进入config 配置目录,修改 jvm.options 文件:
-Xms300m
-Xmx300m
修改 elasticsearch.yml文件, 添加如下配置:
# 设置节点为 master 节点,并允许跨域访问,以便后面使用 head 插件图形化界面访问
node.name: master
http.cors.enabled: true
http.cors.allow-origin: "*"
network.host: 0.0.0.0
运行 Elasticsearch 容器
docker restart es
测试
curl http://localhost:9220
浏览器访问 http://127.0.0.1:9220/