1、查看elasticsearch版本
docker search elasticsearch
2、拉取elasticsearch
docker pull elasticsearch:6.8.2
3、如果下载很慢,使用以下命令配置docker镜像仓库
vi /etc/docker/daemon.json
在daemon.json添加内容,其镜像地址可以网上看自己需要,(阿里、网易等都可以):
{
"registry-mirrors": ["https://******.com"]
}
4、查看是否下载成功
docker images
5、运行elasticsearch,限制运行内存:-e ES_JAVA_OPTS="-Xms256m -Xmx256m"
docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d --name (1) -p 9200:9200 -p 9300:9300 (2)
其中(1)为启动的es起个名字,(2)docker images 里es对应的镜像id
6、运行elasticsearch自动退出解决方案
使用docker logs -f 容器id 看日志的报错原因
下面提供两种方案:
方法一:进入etc目录,编辑sysctl.conf文件:
vi /etc/sysctl.conf
添加配置:
vm.max_map_count=262144
方法二:
find /var/lib/docker/overlay2/ -name jvm.options
查找jvm.options文件,找到后进入使用vi命令打开jvm.options如下:
将
-Xms2g
-Xmx2g
修改为
-Xms256m
-Xmx256m
启动容器
docker start 容器id
7、顺便解决跨域问题(影响header插件连接9200)
修改docker的应用配置,首先要进入到运行应用的终端
docker exec -it 容器id /bin/bash
然后找到elasticsearch.yml配置文件
# 显示文件
ls
结果如下:
LICENSE.txt README.textile config lib modules
NOTICE.txt bin data logs plugins
# 进入配置文件夹
cd config
# 显示文件
ls
结果如下:
elasticsearch.keystore ingest-geoip log4j2.properties roles.yml users_roles
elasticsearch.yml jvm.options role_mapping.yml users
# 修改配置文件
vi elasticsearch.yml
7.3、vi修改文件,在最后一行后添加跨域配置
# 加入跨域配置(注意yml的value前有空格)
http.cors.enabled: true
http.cors.allow-origin: "*"
7.4、退出再重启容器
exit
docker restart 容器id
8、Docker部署ElasticSearch-Header
docker pull mobz/elasticsearch-head:5
9、运行ElasticSearch-Header
docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5
10、docker安装kibana,先拉取镜像,版本最好是与ES的一致
docker pull kibana:6.8.2
11、运行kibana
docker run --name kibana -e ELASTICSEARCH_URL=http://es容器内部ip地址:9200 -p 5601:5601 -d kibana:6.8.2
如何查看es容器的内部地址:
docker inspect --format '{{ .NetworkSettings.IPAddress }}' es容器id