Docker 部署

https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-linux-x86_64

install.sh

  1. #!/bin/bash
  2. docker-compose -v
  3. if [ $? -ne 0 ];then
  4. curl -L "https://github.com/docker/compose/releases/download/2.2.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
  5. chmod +x /usr/local/bin/docker-compose
  6. ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
  7. docker-compose -version
  8. fi
  9. echo Openning docker-compose.yaml es port......
  10. firewall-cmd --zone=public --add-port=9200/tcp --permanent
  11. firewall-cmd --zone=public --add-port=9201/tcp --permanent
  12. firewall-cmd --zone=public --add-port=9202/tcp --permanent
  13. firewall-cmd --zone=public --add-port=9300/tcp --permanent
  14. firewall-cmd --zone=public --add-port=9301/tcp --permanent
  15. firewall-cmd --zone=public --add-port=9302/tcp --permanent
  16. firewall-cmd --reload
  17. CON=`docker image ls 'elasticsearch:7.6.0' | wc -l`
  18. if [ $CON -eq 1 ]
  19. then
  20. echo Is pulling elasticsearch 7.6.0......
  21. docker pull elasticsearch:7.6.0
  22. fi
  23. CON2=`docker image ls 'kibana:7.6.0' | wc -l`
  24. if [ $CON2 -eq 1 ]
  25. then
  26. echo Is pulling kibana 7.6.0......
  27. docker pull kibana:7.6.0
  28. fi
  29. echo Is creating mounted directory......
  30. if [ ! -d "/fsmeeting/elasticsearch/config" ]; then
  31. mkdir -p /fsmeeting/elasticsearch/config
  32. fi
  33. if [ ! -d "/fsmeeting/elasticsearch/data_1" ]; then
  34. mkdir -p /fsmeeting/elasticsearch/data_{1,2,3}
  35. fi
  36. if [ ! -d "/fsmeeting/elasticsearch/plugins" ]; then
  37. mkdir -p /fsmeeting/elasticsearch/plugins
  38. fi
  39. chmod -R 777 /fsmeeting/elasticsearch/
  40. # 在 docker-compose.yaml 同目录下
  41. cd /fsmeeting/elasticsearch
  42. if [ $(grep 'vm.max_map_count' /etc/sysctl.conf |wc -l) -eq 0 ] ; then
  43. echo 'vm.max_map_count=655360' >> /etc/sysctl.conf
  44. fi
  45. sysctl -p
  46. docker-compose up --build -d
  47. echo waitting......
  48. sleep 60
  49. curl -X GET "192.168.8.117:9200/_cat/nodes?v&pretty"
  50. if [ $? -eq 0 ]; then
  51. echo install succesful !
  52. exit 0
  53. fi
  54. echo you need continue waitting some time......
  55. exit -1

docker-compose.yml

  1. version: '2.2.2'
  2. services:
  3. es_dev_1:
  4. image: elasticsearch:7.6.0
  5. container_name: es_dev-1
  6. restart: always
  7. environment:
  8. - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
  9. ulimits:
  10. memlock:
  11. soft: -1
  12. hard: -1
  13. volumes:
  14. - data01:/usr/share/elasticsearch/data
  15. - /fsmeeting/elasticsearch/es_dev_1.yaml:/usr/share/elasticsearch/config/elasticsearch.yml
  16. ports:
  17. - 9200:9200
  18. - 9300:9300
  19. networks:
  20. - elastic
  21. es_dev_2:
  22. image: elasticsearch:7.6.0
  23. container_name: es_dev-2
  24. restart: always
  25. environment:
  26. - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
  27. ulimits:
  28. memlock:
  29. soft: -1
  30. hard: -1
  31. volumes:
  32. - data02:/usr/share/elasticsearch/data
  33. - /fsmeeting/elasticsearch/es_dev_2.yaml:/usr/share/elasticsearch/config/elasticsearch.yml
  34. ports:
  35. - 9201:9201
  36. - 9301:9301
  37. networks:
  38. - elastic
  39. es_dev_3:
  40. image: elasticsearch:7.6.0
  41. container_name: es_dev-3
  42. restart: always
  43. environment:
  44. - "ES_JAVA_OPTS=-Xms1g -Xmx1g"
  45. ulimits:
  46. memlock:
  47. soft: -1
  48. hard: -1
  49. volumes:
  50. - data03:/usr/share/elasticsearch/data
  51. - /fsmeeting/elasticsearch/es_dev_3.yaml:/usr/share/elasticsearch/config/elasticsearch.yml
  52. ports:
  53. - 9202:9202
  54. - 9302:9302
  55. networks:
  56. - elastic
  57. kibana:
  58. image: kibana:7.6.0
  59. container_name: kibana_dev
  60. restart: always
  61. depends_on:
  62. - es_dev_1
  63. environment:
  64. ELASTICSEARCH_URL: http://es_dev_1:9200
  65. ELASTICSEARCH_HOSTS: http://es_dev_1:9200
  66. I18N_LOCALE: zh-CN
  67. ports:
  68. - 5601:5601
  69. links:
  70. - es_dev-1:elasticsearch
  71. networks:
  72. - elastic
  73. volumes:
  74. data01:
  75. driver: local
  76. driver_opts:
  77. type: none
  78. device: /fsmeeting/elasticsearch/data_1
  79. o: bind
  80. data02:
  81. driver: local
  82. driver_opts:
  83. type: none
  84. device: /fsmeeting/elasticsearch/data_2
  85. o: bind
  86. data03:
  87. driver: local
  88. driver_opts:
  89. type: none
  90. device: /fsmeeting/elasticsearch/data_3
  91. o: bind
  92. networks:
  93. elastic:
  94. driver: bridge

es-dev-1.yaml

  1. cluster.name: es-dev
  2. node.name: es_dev_1
  3. http.port: 9200
  4. http.cors.enabled: true
  5. http.cors.allow-origin: "*"
  6. http.cors.allow-credentials: true
  7. http.cors.allow-headers: WWW-Authenticate,X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
  8. node.master: true
  9. node.data: true
  10. bootstrap.memory_lock: true
  11. transport.port: 9300
  12. network.host: 192.168.8.117
  13. discovery.seed_hosts:
  14. - 192.168.8.117
  15. cluster.initial_master_nodes:
  16. - es_dev_1
  17. - es_dev_2
  18. - es_dev_3

es-dev-2.yaml

  1. cluster.name: es-dev
  2. node.name: es_dev_2
  3. http.port: 9201
  4. http.cors.enabled: true
  5. http.cors.allow-origin: "*"
  6. http.cors.allow-credentials: true
  7. http.cors.allow-headers: WWW-Authenticate,X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
  8. node.master: true
  9. node.data: true
  10. bootstrap.memory_lock: true
  11. transport.port: 9301
  12. network.host: 192.168.8.117
  13. discovery.seed_hosts:
  14. - 192.168.8.117
  15. cluster.initial_master_nodes:
  16. - es_dev_1
  17. - es_dev_2
  18. - es_dev_3

es-dev-3.yaml

  1. cluster.name: es-dev
  2. node.name: es_dev_3
  3. http.port: 9202
  4. http.cors.enabled: true
  5. http.cors.allow-origin: "*"
  6. http.cors.allow-credentials: true
  7. http.cors.allow-headers: WWW-Authenticate,X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization
  8. node.master: true
  9. node.data: true
  10. bootstrap.memory_lock: true
  11. transport.port: 9302
  12. network.host: 192.168.8.117
  13. discovery.seed_hosts:
  14. - 192.168.8.117
  15. cluster.initial_master_nodes:
  16. - es_dev_1
  17. - es_dev_2
  18. - es_dev_3

官网配置文件

  1. version: '2.2'
  2. services:
  3. es01:
  4. image: elasticsearch:7.6.0
  5. container_name: es01
  6. environment:
  7. - node.name=es01
  8. - cluster.name=es-docker-cluster
  9. - discovery.seed_hosts=es02,es03
  10. - cluster.initial_master_nodes=es01,es02,es03
  11. - bootstrap.memory_lock=true
  12. - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
  13. ulimits:
  14. memlock:
  15. soft: -1
  16. hard: -1
  17. volumes:
  18. - data01:/usr/share/elasticsearch/data
  19. ports:
  20. - 9200:9200
  21. networks:
  22. - elastic
  23. es02:
  24. image: elasticsearch:7.6.0
  25. container_name: es02
  26. environment:
  27. - node.name=es02
  28. - cluster.name=es-docker-cluster
  29. - discovery.seed_hosts=es01,es03
  30. - cluster.initial_master_nodes=es01,es02,es03
  31. - bootstrap.memory_lock=true
  32. - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
  33. ulimits:
  34. memlock:
  35. soft: -1
  36. hard: -1
  37. volumes:
  38. - data02:/usr/share/elasticsearch/data
  39. networks:
  40. - elastic
  41. es03:
  42. image: elasticsearch:7.6.0
  43. container_name: es03
  44. environment:
  45. - node.name=es03
  46. - cluster.name=es-docker-cluster
  47. - discovery.seed_hosts=es01,es02
  48. - cluster.initial_master_nodes=es01,es02,es03
  49. - bootstrap.memory_lock=true
  50. - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
  51. ulimits:
  52. memlock:
  53. soft: -1
  54. hard: -1
  55. volumes:
  56. - data03:/usr/share/elasticsearch/data
  57. networks:
  58. - elastic
  59. volumes:
  60. data01:
  61. driver: local
  62. data02:
  63. driver: local
  64. data03:
  65. driver: local
  66. networks:
  67. elastic:
  68. driver: bridge