1.拉取镜像
docker pull elasticsearch:6.7.0
docker images //查看image
2.启动容器
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name ES_02 elasticsearch:6.7.0
-e:限制初始内存和最大内存(默认初始占用2G内存空间);
-d:后台运行;
-p:默认进行web通信使用9200端口,将虚拟机的9200映射到ES的9200;
-p:分布式下各结点之间的通信使用9300端口;
–name:容器名
3.查看容器是否启动并访问页面
docker ps
在浏览器访问页面
你的ip:9200
"You Know, for Search" 出现如图的json数据即可说明启动成功
4.容器已经启动但是浏览器无数据的原因
(1)云服务器
首先云服务器需要你开启9200,9300端口,确保端口已经开启。
(2)查看docker日志
docker logs ES_02(你的容器名)
发现有一堆的报错信息
解决办法:
一、运行:
[root@localhost ~]# sysctl -w vm.max_map_count=262144
二、进入容器,并修改config目录下的两个文件:
①jvm.options文件:将-Xms和-Xmx的值都改为512m:
docker exec -it ES_02 /bin/bash
cd config
vi jvm.options
②elasticsearch.yml文件,增加或替换下面两个配置:
vi config/elasticsearch.yml
http.cors.enabled: true
http.cors.allow-origin: "*"
最后退出并重新启动容器:
exit
docker restart ES_02
最终再访问浏览器ip:9200