部署服務
docker run啟動elastic服務
docker pull elasticsearch:6.7.2
docker run -d -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:6.7.2
docker-compose.yml的方式部署
version: '2.2'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:6.7.2
container_name: elasticsearch
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata1:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- esnet
elasticsearch2:
image: docker.elastic.co/elasticsearch/elasticsearch:6.7.2
container_name: elasticsearch2
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "discovery.zen.ping.unicast.hosts=elasticsearch"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- esdata2:/usr/share/elasticsearch/data
networks:
- esnet
volumes:
esdata1:
driver: local
esdata2:
driver: local
networks:
esnet:
elastic常用命令
查看集群是否健康
curl 'localhost:9200/_cat/health?v'
獲取集群的節點列表
curl 'localhost:9200/_cat/nodes?v'
列出所有索引
curl 'localhost:9200/_cat/indices?v'
建立名為customer的索引
curl -XPUT 'localhost:9200/customer?pretty'
向索引customer,類型為external,添加數據
curl -XPUT 'localhost:9200/customer/external/1?pretty' -d '
{
"name": "John Doe"
}'
獲取數據
獲取customer索引下類型為external,id為1的數據,pretty參數表示返回結果格式美觀。
curl -XGET 'localhost:9200/customer/external/1?pretty'
刪除索引 DELETE
curl -XDELETE 'localhost:9200/customer?pretty'
修改數據,如果不存在,就新增
curl -XPUT 'localhost:9200/customer/external/1?pretty' -d '
{
"name": "John Doe"
}'
更新數據
curl -XPOST 'localhost:9200/customer/external/1/_update?pretty' -d '
{
"doc": { "name": "Jane Doe", "age": 20 }
}'
刪除一條記錄數據
curl -XDELETE 'localhost:9200/customer/external/2?pretty'