1.0ElasticSearch安裝
# 拉取ES鏡像
docker pull elasticsearch:6.5.0 # 設置vm.max_map_count大小
sysctl -w vm.max_map_count=262144
# 啟動容器
docker run --name elasticsearch -d -e ES_JAVA_OPTS="-Xms512m -Xmx512m" -e "discovery.type=single-node" -p 9200:9200 -p 9300:9300 elasticsearch:6.5.0
1.1啟動容器是的坑
報錯信息如下 max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] 臨時解決辦法(重啟虛擬機會失效): 1.切換到root用戶,執行命令: sysctl -w vm.max_map_count=262144 2.查看結果: sysctl -a|grep vm.max_map_count 3.顯示: vm.max_map_count = 262144 永久解決辦法 在/etc/sysctl.conf文件最后添加一行:vm.max_map_count=262144 重啟虛擬機
1.2ES容器中配置文件
# 自動生成的集群名稱
cluster.name: "docker-cluster" network.host: 0.0.0.0
# 設置訪問端口 transport.tcp.port: 9300 http.port: 9200
# 解決跨域請求 http.cors.enabled: true http.cors.allow-origin: "*" # minimum_master_nodes need to be explicitly set when bound on a public IP # set to 1 to allow single node clusters # Details: https://github.com/elastic/elasticsearch/pull/17288 discovery.zen.minimum_master_nodes: 1
2.0安裝ES-Head
#拉取鏡像
docker pull mobz/elasticsearch-head:5 #啟動容器 docker run -d -p 9100:9100 mobz/elasticsearch-head:5
# 訪問9100 端口
2.1 ES-Head訪問 406
1. 頁面數據查詢報406錯誤 {"error":"Content-Type header [application/x-www-form-urlencoded] is not supported","status":406} 2. 解決方法: # 進入docker es-head容器 # 命令 docker exec -it 容器ID /bin/bash [root@localhost ~]# docker exec -it es-head /bin/bash 進入head安裝目錄; cd進入_site/目錄,編輯vendor.js 共有兩處 # 如果提示找不到vim方法,請參考下面的 [附: Docker容器vim安裝] [root@localhost ~]# vim _site/vendor.js 6886行: /contentType: “application/x-www-form-urlencoded改成 contentType: "application/json;charset=UTF-8"
7573行: var inspectData = s.contentType === “application/x-www-form-urlencoded” && 改成 var inspectData = s.contentType === "application/json;charset=UTF-8" &&
3. 附: Docker容器vim安裝 # 更新源 [root@localhost ~]# apt-get update # 先更新,防止提示:Unable to locate package vim [root@localhost ~]# apt-get install vim