系统配置
[root@vm ~]# vim /etc/sysctl.conf
vm.max_map_count=655360
[root@vm ~]# sysctl -p
容器启动
[root@vm ~]# docker run -d --name es -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:7.6.2
[root@vm ~]# curl -X GET "localhost:9200/_cat/nodes?v&pretty"
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
172.17.0.2 16 78 15 0.83 0.31 0.14 dilm * b96cb6f44af0
集群启动
[root@vm es]# cat docker-compose.yaml
version: '3'
services:
es01:
image: elasticsearch:7.6.2
container_name: es01
environment:
- node.name=es01
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data01:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- elastic
es02:
image: elasticsearch:7.6.2
container_name: es02
environment:
- node.name=es02
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data02:/usr/share/elasticsearch/data
networks:
- elastic
es03:
image: elasticsearch:7.6.2
container_name: es03
environment:
- node.name=es03
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data03:/usr/share/elasticsearch/data
networks:
- elastic
volumes:
data01:
driver: local
data02:
driver: local
data03:
driver: local
networks:
elastic:
driver: bridge
[root@vm es]# docker-compose up -d
[root@vm es]# curl -X GET "localhost:9200/_cat/nodes?v&pretty"
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
172.19.0.3 17 75 0 0.00 0.02 0.05 dilm - es03
172.19.0.2 29 75 0 0.00 0.02 0.05 dilm - es01
172.19.0.4 33 75 0 0.00 0.02 0.05 dilm * es02
数据存储位置
[root@vm es]# docker volume ls
DRIVER VOLUME NAME
local es_data01
local es_data02
local es_data03
[root@vm es]# ls /var/lib/docker/volumes/
es_data01 es_data02 es_data03 metadata.db
[root@vm es]# tree /var/lib/docker/volumes/es_data01/
/var/lib/docker/volumes/es_data01/
└── _data
└── nodes
└── 0
├── node.lock
└── _state
├── manifest-6.st
├── node-6.st
├── _s.cfe
├── _s.cfs
├── segments_11
├── _s.si
└── write.lock
[root@vm es]# docker-compose down
[root@vm es]# docker volume prune
存储es数据到本地
[root@vm es]# mkdir es01 es02 es03
[root@vm es]# chown 1000 es01 es02 es03
[root@vm es]# docker-compose up -d
[root@vm es]# cat docker-compose.yaml
version: '3'
services:
es01:
image: elasticsearch:7.6.2
container_name: es01
environment:
- node.name=es01
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m -Des.insecure.allow.root=true"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./es01:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- elastic
es02:
image: elasticsearch:7.6.2
container_name: es02
environment:
- node.name=es02
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m -Des.insecure.allow.root=true"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./es02:/usr/share/elasticsearch/data
networks:
- elastic
es03:
image: elasticsearch:7.6.2
container_name: es03
environment:
- node.name=es03
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m -Des.insecure.allow.root=true"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./es03:/usr/share/elasticsearch/data
networks:
- elastic
networks:
elastic:
driver: bridge