前期準備:
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.
可執行以下操作:
圖片.png
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: "*"