目录
一、准备工作
1、安装docker
参考
【Docker技术内幕】(四)Linux环境下安装docker
2、设置加速镜像
vim /etc/docker/daemon.json
{
"registry-mirrors": ["https://mirror.ccs.tencentyun.com"]
}
systemctl restart docker
systemctl enable docker
二、开始安装
1、创建目录
mkdir -p /data/elasticsearch9200/{data,logs}
cd /data/elasticsearch9200
2、修改配置
vim elasticsearch.yml
cluster.name: "es-cluster"
network.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
3、启动容器
chmod 777 -R /data/elasticsearch9200/logs
docker run -m 4g --restart always --name="es9200" \
-p 9200:9200 -p 9300:9300 \
-e ES_JAVA_OPTS="-Xms1g -Xmx2g" -e "discovery.type=single-node" \
-v /data/elasticsearch9200/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /data/elasticsearch9200/data:/usr/share/elasticsearch/data \
-v /data/elasticsearch9200/logs/:/usr/share/elasticsearch/logs \
-d docker.elastic.co/elasticsearch/elasticsearch:7.7.0
三、测试是否安装成功
curl 127.0.0.1:9200/_cat/health?v=pretty
四、安装es-head
1、安装
docker run --name es8092-head -p 8094:9100 -d mobz/elasticsearch-head:5
2、访问
http://*.*.*.*:8094/
es连接配置
http://*.*.*.*:9200
五、问题解决
1、ElasticSearch操作数据报406错误解决
注意:通过ElasticSearch-Head连接ElasticSearch,但进行数据操作时会报406错误,此时需要修改ElasticSearch-Head容器中的配置,执行命令此命令会把docker容器中的文件复制到宿主机目录。
1)
"""
docker cp es8092-head:/usr/src/app/_site/vendor.js .
"""
2)修改Vendor.js文件第6886、7574行,
将"application/x-www-from-urlencodes"修改为"application/json;charset=UTF-8"就可以了,注意千万看清行数别修改错了,修改完成再把文件拷贝到容器中
3)把文件拷贝到容器中
docker cp ./vendor.js es8092-head:/usr/src/app/_site
4)重启容器
docker restart es8092-head