DockerToolbox 中elasticsearch的安装及使用

第一步:获取elasticsearch 镜像: 注意获取时最好带上版本号,如果不带默认为最新的版本可能会不稳定

docker pull elasticsearch:7.6.1

第二步:运行elasticsearch 

docker ssh szqj

docker run -p 9200:9200 -p 9300:9300 --name=esearch -e "discovery.type=single-node" elasticsearch

使用--name参数是为了第二次启动elasticsearch方便

启动 esearch

docker start  esearch

elasticsearch 的配置与插件安装(需要先启动elsticsearch)

  • -d :分离模式: 在后台运行

  • -i :即使没有附加也保持STDIN 打开

  • -t :分配一个伪终端

docker exec -it esearch /bin/bash

 

如果出现出现在本机不能访问elasticsearch 的问题,需要在Virtual Box 里设置一下端口转发

 

设置elasticsearch 使用内存,默认为1G (文件在elasticsearch/config目录下)

 

vi jvm.options

 

修改上面的 Xms与Xmx即可。一个为初始化大小,一个化最大大小 。

 

 

 


 

 

还有另外一种安装方式更方便,哪就是使用docker-comporse

新建一个文件,比如 docker-compose.yml 放入以下内容

version: '2.2'
services:
  es01:
    image: elasticsearch:7.6.1 
    container_name: es01
    environment:
      - node.name=es01
      - cluster.name=es_elasticsearch
      - discovery.seed_hosts=es02,es03
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms5g -Xmx5g"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data01:/usr/share/elasticsearch/data
    ports:
      - 9200:9200
    networks:
      - elastic
  es02:
    image: elasticsearch:7.6.1
    container_name: es02
    environment:
      - node.name=es02
      - cluster.name=es_elasticsearch
      - discovery.seed_hosts=es01,es03
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms5g -Xmx5g"
    ulimits:
      memlock:
        soft: -1
        hard: -1
    volumes:
      - data02:/usr/share/elasticsearch/data
    networks:
      - elastic
  es03:
    image: elasticsearch:7.6.1
    container_name: es03
    environment:
      - node.name=es03
      - cluster.name=es_elasticsearch
      - discovery.seed_hosts=es01,es02
      - cluster.initial_master_nodes=es01,es02,es03
      - bootstrap.memory_lock=true
      - "ES_JAVA_OPTS=-Xms5g -Xmx5g"
    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在

上面的 image 为第一步通过docker pull获取的镜像名称

在命令窗口中运行:以下命令即可创建

docker-compose up  

注意:

该命令将尝试自动完成包括构建镜像,(重新)创建服务,启动服务,并关联服务相关容器的一系列操作。

因此,在项目文件夹下执行此命令。注意要在项目文件夹下,否则 docker-compose 找不到 docker-compose.yml 文件,也不知道你是如何配置的。

必要时你可以添加--build 参数重新构建镜像,或者--force-recreate参数重新创建容器。

启动已经创建好的yml

docker-compose start 

执行docker-compose 出现相关错误的解决办法

$ docker-compose restart
[13944] Failed to execute script docker-compose
Traceback (most recent call last):
File "docker-compose", line 6, in <module>
File "composeclimain.py", line 71, in main
File "composeclimain.py", line 124, in perform_command
File "composeclicommand.py", line 38, in project_from_options
File "composeclidocker_client.py", line 84, in tls_config_from_options
File "site-packagesdockertls.py", line 81, in init
docker.errors.TLSParameterError: Path to a certificate and key files must be pro vided through the client_config param. TLS configurations should map the Docker CLI client configurations. See https://docs.docker.com/engin... fo r API details.

执行以下命令

 docker-machine env szqj 

   其中szqj为您的命名名称

 

docker 启动ES失败,报错如下 max virtual memory areas vm.max_map_count [65530] is too low 的解决办法:

vi /etc/sysctl.conf 

 加入以下内容

vm.max_map_count=262144

查看更改否生效:

sysctl -p 

 

elasticsearch 在docker中的安装请参考: https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html

posted @ 2020-05-14 11:16  fogwu  阅读(597)  评论(0编辑  收藏  举报