前期准备:
Windows安装虚拟机
Linux安装Docker
1.设置max_map_count不能启动es会启动不起来
查看max_map_count的值 默认是65530
cat /proc/sys/vm/max_map_count
重新设置max_map_count的值
sysctl -w vm.max_map_count=262144
2.下载镜像并运行
拉取镜像
docker pull elasticsearch:7.8.0
1.拉取镜像失败:error pulling image configuration: Get https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/12/121454ddad72df47aa5726e7634dc16f5ed764b08b90aed848a48d625fde4d8b/data?verify=1622687446-ErGMz87qRxrIMUIFxHrGV8FWBWE%3D: dial tcp 104.18.123.25:443: i/o timeout
解决方法:
在/etc/resolv.conf文件中新增一个参数
然后重新加载配置文件,重启再拉镜像就可以了。
查看镜像
启动镜像
docker run --name elasticsearch -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.8.0
启动时报如下错误:
/usr/bin/docker-current: Error response from daemon: driver failed programming external connectivity on endpoint elasticsearch (211745a673cfcba8e1c8810c5dc314f5031612c915908a6733824eeb83a30ad5): exec: "docker-proxy": executable file not found in $PATH.
可知,启动需要执行 /usr/bin/docker-proxy
查看下 docker-proxy 的位置并创建一条软连接到 /usr/bin/ 下:
重新执行:
docker run --name elasticsearch -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:7.8.0
出现新的报错:
解决方法:
vi /etc/docker/daemon.json
添加内容如下:
{
"log-level":"warn",
"runtimes": {
"docker-runc": {
"path": "/usr/libexec/docker/docker-runc-current"
}
},
"add-runtime": "docker-runc=/usr/libexec/docker/docker-runc-current",
"default-runtime": "docker-runc"
}
保存退出,执行如下动作:
systemctl daemon-reload
systemctl start docker
注意事项:
如果出现You have to remove (or rename) that container to be able to reuse that name.
可执行以下操作:
3.下载镜像并运行
浏览器访问ip:9200 如果出现以下界面就是安装成功
4.安装elasticsearch-head
拉取镜像
docker pull mobz/elasticsearch-head:5
报错:error pulling image configuration: Get https://production.cloudflare.docker.com/registry-v2/docker/registry/v2/blobs/sha256/b1/b19a5c98e43bb87849b71f4389b9ed373f63e8c1fe0fabe2ac5a137497425db2/data?verify=1622692008-tU8vH4cj6X0FJn9qlXbZjffUpGY%3D: dial tcp 104.18.124.25:443: i/o timeout
解决:
在 配置文件中添加aliyun 仓库 。
vim /etc/docker/daemon.json
{"registry-mirrors": ["https://hccwwfjl.mirror.aliyuncs.com"]}
重新加载配置文件,重启。
创建容器
docker create --name elasticsearch-head -p 9100:9100 mobz/elasticsearch-head:5
启动容器
docker start elasticsearch-head
or
docker start 容器id (docker ps -a 查看容器id )
5.浏览器打开: http://IP:9100
尝试连接easticsearch会发现无法连接上,由于是前后端分离开发,所以会存在跨域问题,需要在服务端做CORS的配置。
解决办法
修改docker中elasticsearch的elasticsearch.yml文件
docker exec -it elasticsearch /bin/bash (进不去使用容器id进入)
记得运行容器,哈哈
vi config/elasticsearch.yml
在最下面添加2行
http.cors.enabled: true
http.cors.allow-origin: "*"