第一步:获取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参数重新创建容器。
elasticsearch 在docker中的安装请参考: https://www.elastic.co/guide/en/elasticsearch/reference/current/docker.html