拉取docker鏡像:html
docker pull docker.elastic.co/elasticsearch/elasticsearch:6.1.1node
命令行方式啓動nginx
若是sysctl -w無效的話,直接vi /etc/sysctl.conf這個文件進行修改。docker
正式環境一般須要部署集羣,採用docker-compose的方式。bootstrap
docker-compose.yml是啓動2個Elasticsearch節點並做爲集羣的例子,啓動方式爲:api
docker-compose up瀏覽器
version: '2'
services:
es1:
image: docker.elastic.co/elasticsearch/elasticsearch:6.1.1
container_name: es1
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
mem_limit: 1g
volumes:
- esdata1:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- esnet
es2:
image: docker.elastic.co/elasticsearch/elasticsearch:5.5.2
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "discovery.zen.ping.unicast.hosts=es1"
ulimits:
memlock:
soft: -1
hard: -1
mem_limit: 1g
volumes:
- esdata2:/usr/share/elasticsearch/data
networks:
- esnet服務器
volumes:
esdata1:
driver: local
esdata2:
driver: localelasticsearch
networks:
esnet:ide
檢查集羣的狀態(健康狀況):
在瀏覽器中打開 http://127.0.0.1:9200/_cat/health
默認的用戶名密碼:
elastic/changeme
在host裏能夠使用docker logs來查看docker的日誌
安裝elasticsearch-head擴展(h5頁面),因爲elasticsearch 5以後對於head擴展再也不支持elasticsearch-plugin的方式和Chrome Extension的方式,須要單獨啓動一個node服務器,下面使用docker來啓動
docker run -p 9100:9100 -d --name es-head mobz/elasticsearch-head:5
因爲head是須要調用es的api的,因此域名最好保持統一,採用以前plugin的訪問方式,在nginx上作location proxy
location /_plugin/head {
proxy_pass http://devops1-internal:9100/;
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 360;
proxy_send_timeout 180;
proxy_read_timeout 180;
proxy_buffer_size 8k;
proxy_buffers 8 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
}
最後以 http://localhost/_plugin/head/ 來進行訪問