1. docker pull elasticsearch
2. docker images 查看是否有下载成功的elasticsearch
3. elasticsearch有2个端口,分别如下:
简单理解:
9300端口: ES节点之间通讯使用
9200端口: ES节点 和 外部 通讯使用
所以一般这样启动
docker run -d -p 9200:9200 -p 9300:9300 --name=elasticsearch elasticsearch
但是此时docker ps 查看会没有elastic,而在docker ps -a查看却有,这是为什么那,
进行日志查看docker logs -f 容器id
可以发现elastic 内存不足
elasticsearch5.+配置默认的内存是2g。我给docker的内存也只有2g,于是就GG了
删除了旧容器,和旧镜像后,在docker启动命令中加上-e "ES_JAVA_OPTS=-Xms512m -Xmx512m"
解决问题
所以启动参数改为:
docker run -d -p 9200:9200 -p 9300:9300 -e "ES_JAVA_OPTS=-Xms512m -Xmx512m" --name=elasticsearch elasticsearch
此时再通过http://localhost:9200/ 即可访问
ElasticSearch——跨域访问
ES服务器安装部署成功之后
从另外一个域的浏览器访问ES服务器数据,会出现跨域的问题。
抛出错误:No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 503.
查看ES相关资料,得知ES默认是不允许跨域的
但是我们可以通过ES的配置文件:elasticsearch.yml中添加如下参数:
#开启跨域访问支持,默认为false
http.cors.enabled: true
#跨域访问允许的域名地址,(允许所有域名)以上使用正则
http.cors.allow-origin: /.*/
配置步骤如下:
docker exec -it es /bin/bash
此时用vim命令时,可能不存在,则又需要安装vim命令了
docker容器中,有的并未安装vi和vim,输入命令vim,会提示vim: command not found(如下图)。此时我们就要安装vi命令
执行命令:apt-get update
apt-get update
执行命令:apt-get install vim -y
apt-get install vim -y
重启容器
由于修改了配置,因此需要重启ElasticSearch
容器。
docker restart esid
接着Docker 来安装ElasticSearch-Head ,管理elasticSearch,ElasticSearch-Head这个是js的,基于node.js的,我们docker
直接下载就行,默认没有在docker的镜像库中,我们可以从docker其他镜像仓库中下载就行
3.1 拉取镜像
docker pull mobz/elasticsearch-head:5
3.2 运行容器
docker run -d --name es_admin -p 9100:9100 mobz/elasticsearch-head:5
Elasticsearch 清空type下所有documents
POST /tystrategy/strategy/_delete_by_query?conflicts=proceed
{
"query": {
"match_all": {}
}
}