Docker 部署
https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-linux-x86_64
install.sh
#!/bin/bashdocker-compose -vif [ $? -ne 0 ];thencurl -L "https://github.com/docker/compose/releases/download/2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-composechmod +x /usr/local/bin/docker-composeln -s /usr/local/bin/docker-compose /usr/bin/docker-composedocker-compose -versionfiecho Openning docker-compose.yaml es port......firewall-cmd --zone=public --add-port=9200/tcp --permanentfirewall-cmd --zone=public --add-port=9201/tcp --permanentfirewall-cmd --zone=public --add-port=9202/tcp --permanentfirewall-cmd --zone=public --add-port=9300/tcp --permanentfirewall-cmd --zone=public --add-port=9301/tcp --permanentfirewall-cmd --zone=public --add-port=9302/tcp --permanentfirewall-cmd --reloadCON=`docker image ls 'elasticsearch:7.6.0' | wc -l`if [ $CON -eq 1 ]thenecho Is pulling elasticsearch 7.6.0......docker pull elasticsearch:7.6.0fiCON2=`docker image ls 'kibana:7.6.0' | wc -l`if [ $CON2 -eq 1 ]thenecho Is pulling kibana 7.6.0......docker pull kibana:7.6.0fiecho Is creating mounted directory......if [ ! -d "/fsmeeting/elasticsearch/config" ]; thenmkdir -p /fsmeeting/elasticsearch/configfiif [ ! -d "/fsmeeting/elasticsearch/data_1" ]; thenmkdir -p /fsmeeting/elasticsearch/data_{1,2,3}fiif [ ! -d "/fsmeeting/elasticsearch/plugins" ]; thenmkdir -p /fsmeeting/elasticsearch/pluginsfichmod -R 777 /fsmeeting/elasticsearch/# 在 docker-compose.yaml 同目录下cd /fsmeeting/elasticsearchif [ $(grep 'vm.max_map_count' /etc/sysctl.conf |wc -l) -eq 0 ] ; thenecho 'vm.max_map_count=655360' >> /etc/sysctl.conffisysctl -pdocker-compose up --build -decho waitting......sleep 60curl -X GET "192.168.8.117:9200/_cat/nodes?v&pretty"if [ $? -eq 0 ]; thenecho install succesful !exit 0fiecho you need continue waitting some time......exit -1
docker-compose.yml
version: '2.2.2'services:es_dev_1:image: elasticsearch:7.6.0container_name: es_dev-1restart: alwaysenvironment:- "ES_JAVA_OPTS=-Xms1g -Xmx1g"ulimits:memlock:soft: -1hard: -1volumes:- data01:/usr/share/elasticsearch/data- /fsmeeting/elasticsearch/es_dev_1.yaml:/usr/share/elasticsearch/config/elasticsearch.ymlports:- 9200:9200- 9300:9300networks:- elastices_dev_2:image: elasticsearch:7.6.0container_name: es_dev-2restart: alwaysenvironment:- "ES_JAVA_OPTS=-Xms1g -Xmx1g"ulimits:memlock:soft: -1hard: -1volumes:- data02:/usr/share/elasticsearch/data- /fsmeeting/elasticsearch/es_dev_2.yaml:/usr/share/elasticsearch/config/elasticsearch.ymlports:- 9201:9201- 9301:9301networks:- elastices_dev_3:image: elasticsearch:7.6.0container_name: es_dev-3restart: alwaysenvironment:- "ES_JAVA_OPTS=-Xms1g -Xmx1g"ulimits:memlock:soft: -1hard: -1volumes:- data03:/usr/share/elasticsearch/data- /fsmeeting/elasticsearch/es_dev_3.yaml:/usr/share/elasticsearch/config/elasticsearch.ymlports:- 9202:9202- 9302:9302networks:- elastickibana:image: kibana:7.6.0container_name: kibana_devrestart: alwaysdepends_on:- es_dev_1environment:ELASTICSEARCH_URL: http://es_dev_1:9200ELASTICSEARCH_HOSTS: http://es_dev_1:9200I18N_LOCALE: zh-CNports:- 5601:5601links:- es_dev-1:elasticsearchnetworks:- elasticvolumes:data01:driver: localdriver_opts:type: nonedevice: /fsmeeting/elasticsearch/data_1o: binddata02:driver: localdriver_opts:type: nonedevice: /fsmeeting/elasticsearch/data_2o: binddata03:driver: localdriver_opts:type: nonedevice: /fsmeeting/elasticsearch/data_3o: bindnetworks:elastic:driver: bridge
es-dev-1.yaml
cluster.name: es-devnode.name: es_dev_1http.port: 9200http.cors.enabled: truehttp.cors.allow-origin: "*"http.cors.allow-credentials: truehttp.cors.allow-headers: WWW-Authenticate,X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorizationnode.master: truenode.data: truebootstrap.memory_lock: truetransport.port: 9300network.host: 192.168.8.117discovery.seed_hosts:- 192.168.8.117cluster.initial_master_nodes:- es_dev_1- es_dev_2- es_dev_3
es-dev-2.yaml
cluster.name: es-devnode.name: es_dev_2http.port: 9201http.cors.enabled: truehttp.cors.allow-origin: "*"http.cors.allow-credentials: truehttp.cors.allow-headers: WWW-Authenticate,X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorizationnode.master: truenode.data: truebootstrap.memory_lock: truetransport.port: 9301network.host: 192.168.8.117discovery.seed_hosts:- 192.168.8.117cluster.initial_master_nodes:- es_dev_1- es_dev_2- es_dev_3
es-dev-3.yaml
cluster.name: es-devnode.name: es_dev_3http.port: 9202http.cors.enabled: truehttp.cors.allow-origin: "*"http.cors.allow-credentials: truehttp.cors.allow-headers: WWW-Authenticate,X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorizationnode.master: truenode.data: truebootstrap.memory_lock: truetransport.port: 9302network.host: 192.168.8.117discovery.seed_hosts:- 192.168.8.117cluster.initial_master_nodes:- es_dev_1- es_dev_2- es_dev_3
官网配置文件
version: '2.2'services:es01:image: elasticsearch:7.6.0container_name: es01environment:- 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: -1hard: -1volumes:- data01:/usr/share/elasticsearch/dataports:- 9200:9200networks:- elastices02:image: elasticsearch:7.6.0container_name: es02environment:- 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: -1hard: -1volumes:- data02:/usr/share/elasticsearch/datanetworks:- elastices03:image: elasticsearch:7.6.0container_name: es03environment:- 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: -1hard: -1volumes:- data03:/usr/share/elasticsearch/datanetworks:- elasticvolumes:data01:driver: localdata02:driver: localdata03:driver: localnetworks:elastic:driver: bridge
