Docker安装部署ElasticSearch

1.部署单点ElasticSearch

1.1.创建网络

因为我们还需要部署kibana容器,因此需要让ElasticSearchkibana容器互联。这里先创建一个网络:

docker network create es-net

在这里插入图片描述

1.2.拉取镜像

考虑到ElasticSearch的兼容性,这里ElasticSearchkibana统一下载8.6.2版本

# 拉取镜像
docker pull elasticsearch:8.6.2

在这里插入图片描述

1.3.第一次执行docker脚本

docker run -it \
    -p 9200:9200 \
    -p 9300:9300 \
    --name es \
    --net es-net \
    -e ES_JAVA_OPTS="-Xms1g -Xmx1g" \
    -e "discovery.type=single-node" \
    -e LANG=C.UTF-8 \
    -e LC_ALL=C.UTF-8 \
    elasticsearch:8.6.2

注意第一次执行脚本不要加-d这个参数,否则看不到服务首次运行时生成的随机密码和随机enrollment token

在这里插入图片描述

1.4.创建Elasticsearch挂载目录

mkdir -p /home/elk8.6.2/elasticsearch

1.5.给创建的文件夹授权

sudo chown -R 1000:1000 /home/elk8.6.2/elasticsearch

1.6.将容器内的文件复制到主机上

docker cp es:/usr/share/elasticsearch/config /home/elk8.6.2/elasticsearch 

docker cp es:/usr/share/elasticsearch/data /home/elk8.6.2/elasticsearch

docker cp es:/usr/share/elasticsearch/plugins /home/elk8.6.2/elasticsearch

docker cp es:/usr/share/elasticsearch/logs /home/elk8.6.2/elasticsearch

1.7.删除容器

docker rm -f es

1.8.修改docker脚本,增加-v挂载目录和-d参数

docker run -it \
 -d \
 -p 9200:9200 \
 -p 9300:9300 \
 --name es \
 --net es-net \
 -e ES_JAVA_OPTS="-Xms1g -Xmx1g" \
 -e "discovery.type=single-node" \
 -e LANG=C.UTF-8 \
 -e LC_ALL=C.UTF-8 \
 -v /home/elk8.6.2/elasticsearch/config:/usr/share/elasticsearch/config \
 -v /home/elk8.6.2/elasticsearch/data:/usr/share/elasticsearch/data \
 -v /home/elk8.6.2/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
 -v /home/elk8.6.2/elasticsearch/logs:/usr/share/elasticsearch/logs \
elasticsearch:8.6.2

在这里插入图片描述

1.9.修改配置/home/elk8.6.2/elasticsearch/config/elasticsearch.yml

增加:xpack.monitoring.collection.enabled: true
说明:添加这个配置以后在kibana中才会显示联机状态,否则会显示脱机状态

在这里插入图片描述

1.10.重启容器

docker restart es

1.11.Elasticsearch.8X以上默认开启了X-Pack安全功能

说明:请求Elasticsearch必须使用https

测试:https://ip:9200

在这里插入图片描述

用户名就是:elastic,密码在第一次启动时保存下来的信息中查找,输入账号密码,即可看到elasticsearch的响应结果:

在这里插入图片描述

看到这种信息说明启动成功了。

1.12.如果账户密码忘了,设置修改账号密码如下:

docker exec -it es /bin/bash

cd /usr/share/elasticsearch/bin
./elasticsearch-setup-passwords interactive

在这里插入图片描述

ElasticSearch设置后账户:elastic,密码:123456

2.部署kibana

kibana可以给我们提供一个ElasticSearch的可视化界面,便于我们使用。

2.1.拉取镜像

# 拉取镜像  
#注意要与ElasticSearch版本一致
docker pull kibana:8.6.2 

2.2.第一次执行docker启动脚本

docker run -it \
 -d \
 --restart=always \
 --log-driver json-file \
 --log-opt max-size=100m \
 --log-opt max-file=2 \
 --name kibana \
 -p 5601:5601 \
 --net es-net \
kibana:8.6.2

在这里插入图片描述

2.3.创建kibana挂载目录

mkdir -p /home/elk8.6.2/kibana

2.4.给创建的文件夹授权

sudo chown -R 1000:1000 /home/elk8.6.2/kibana

2.5.将容器内的文件复制到主机上

docker cp kibana:/usr/share/kibana/config /home/elk8.6.2/kibana

docker cp kibana:/usr/share/kibana/data /home/elk8.6.2/kibana

docker cp kibana:/usr/share/kibana/plugins /home/elk8.6.2/kibana

docker cp kibana:/usr/share/kibana/logs /home/elk8.6.2/kibana

在这里插入图片描述

2.6.删除容器

docker rm -f kibana

2.7.修改配置文件/home/elk8.6.2/kibana/config/kibana.yml:

  • 增加:i18n.locale: “zh-CN”
  • 修改:elasticsearch.hosts: [‘https://172.20.0.2:9200’],将IP改成elasticsearchdocker ip,注意一定要用https
  • 修改:xpack.fleet.outputs: [{id: fleet-default-output, name: default, is_default: true, is_default_monitoring: true, type: elasticsearch, hosts: [‘https://172.20.0.2:9200’], ca_trusted_fingerprint: xxxxxxxxxx}]
    IP改成elasticsearchdocker ip,注意一定要用https

在这里插入图片描述

2.8.修改docker启动脚本,增加挂载目录

docker run -it \
 -d \
 --restart=always \
 --log-driver json-file \
 --log-opt max-size=100m \
 --log-opt max-file=2 \
 --name kibana \
 -p 5601:5601 \
 --net es-net \
 -v /home/elk8.6.2/kibana/config:/usr/share/kibana/config \
 -v /home/elk8.6.2/kibana/data:/usr/share/kibana/data \
 -v /home/elk8.6.2/kibana/plugins:/usr/share/kibana/plugins \
 -v /home/elk8.6.2/kibana/logs:/usr/share/kibana/logs \
kibana:8.6.2

在这里插入图片描述

2.9.查看kibana日志

docker logs -f kibana

此时,在浏览器输入地址访问:http://192.168.1.111:5601,即可看到结果。

2.2.DevTools

kibana中提供了一个DevTools界面:

在这里插入图片描述

这个界面中可以编写DSL来操作elasticsearch。并且对DSL语句有自动补全功能。

4.部署es集群

部署es集群可以直接使用docker-compose来完成,不过要求你的Linux虚拟机至少有4G的内存空间

首先编写一个docker-compose文件,内容如下:

version: '2.2'
services:
  es01:
    image: docker.elastic.co/elasticsearch/elasticsearch:8.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: docker.elastic.co/elasticsearch/elasticsearch:8.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: docker.elastic.co/elasticsearch/elasticsearch:8.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

运行docker-compose以启动集群:

docker-compose up
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: Docker 可以方便地部署 Elasticsearch。首先,需要在本地安装 Docker。然后,可以通过运行以下命令来启动 Elasticsearch 容器: ``` docker run -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.10.2 ``` 这会在本地启动一个 Elasticsearch 容器,并将容器内部的 9200 端口映射到本地的 9200 端口,以便访问 Elasticsearch。 ### 回答2: 在Docker部署Elasticsearch是非常简单的,因为Elasticsearch已经提供了官方的Docker镜像。下面我们将介绍如何使用Docker部署Elasticsearch。 第一步:安装Docker 在开始之前,我们需要先在我们的机器上安装Docker。如果你还没有安装,请按照下面的步骤进行安装。 1.在终端上输入以下命令,下载和安装Docker ``` sh curl -fsSL https://get.docker.com -o get-docker.sh sudo sh get-docker.sh ``` 2.Docker安装完成后,运行以下命令以将当前用户添加到docker组中 ``` sh sudo usermod -aG docker ${USER} ``` 3.重新登录以应用新组的更改 ``` sh su - ${USER} ``` 4.通过运行以下命令验证Docker是否正确安装 ``` sh docker run hello-world ``` 如果看到输出 "Hello from Docker!" 说明Docker已经安装成功。 第二步:拉取Elasticsearch镜像 Docker官方提供了Elasticsearch的官方镜像,我们可以通过以下命令来拉取它: ``` sh docker pull elasticsearch:7.10.1 ``` 这将下载Elasticsearch 7.10.1版本的官方镜像。 第三步:启动Elasticsearch容器 我们已经准备好了DockerElasticsearch镜像,现在将启动Elasticsearch容器。使用以下命令来启动容器: ``` sh docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 elasticsearch:7.10.1 ``` 以上命令将启动Elasticsearch容器,并将容器的9200、9300端口映射到主机的对应端口。 现在,我们已经成功地在Docker部署Elasticsearch。可以通过浏览器或Curl命令检查Elasticsearch是否正在运行。 ``` sh curl http://localhost:9200/ ``` 将输出类似如下的内容: ``` sh { "name" : "926e6516b21e", "cluster_name" : "docker-cluster", "cluster_uuid" : "RH8jpc67T8yVTyroaCTVQg", "version" : { "number" : "7.10.1", "build_flavor" : "default", "build_type" : "docker", "build_hash" : "1c34507e66d7db1211f66f3513706fdf548736aa", "build_date" : "2020-12-05T01:00:33.671820Z", "build_snapshot" : false, "lucene_version" : "8.7.0", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" } ``` 至此,我们已经成功地将Elasticsearch部署到了Docker中。注意,这样的方式并不安全,仅适合用于本地测试和开发环境中。必要时,需要使用安全设置和访问控制列表对Elasticsearch进行保护。 ### 回答3: Docker 是一种基于容器化技术的轻量级虚拟化技术,可以在不同的操作系统和平台上运行。Elasticsearch是一个基于Lucene的全文搜索引擎,它提供了RESTful API接口,可以实现索引和搜索大型数据集,是目前最流行的搜索引擎之一。将Elasticsearch部署Docker容器中,能够使我们更加方便地管理Elasticsearch实例的启动、停止和扩展,并且可以在任意平台上运行。 要部署ElasticsearchDocker容器中,需要遵循以下步骤: 1. 安装Docker 首先需要安装Docker,可以到官方网站下载并安装。 2. 下载Elasticsearch镜像 在Docker Hub上有许多Elasticsearch镜像可供下载,可以选择一个合适的镜像并下载到本地。 3. 启动Elasticsearch容器 使用docker run命令启动Elasticsearch容器,并指定必要参数,如端口、数据卷、环境变量等。例如: ``` docker run -d --name elasticsearch \ -p 9200:9200 -p 9300:9300 \ -v /data/elasticsearch:/usr/share/elasticsearch/data \ -e "discovery.type=single-node" \ elasticsearch:7.10.1 ``` 这个命令会启动一个名为elasticsearch的容器,并将9200和9300端口映射到主机上。同时指定了数据卷,使Elasticsearch数据持久化;设置了discovery.type为single-node,表示以单节点模式启动Elasticsearch。 4. 配置Elasticsearch 容器启动以后,可以使用HTTP API来配置Elasticsearch,例如创建索引、插入数据等。也可以将配置文件挂载到容器中,使用配置文件来配置Elasticsearch。 以上是在Docker部署Elasticsearch的简要步骤,需要注意的是,在部署过程中还需要考虑一些其他问题,如网络配置、性能优化等。另外,为了实现高可用性和负载均衡,可以使用Docker Swarm或Kubernetes等容器集群管理工具来管理Elasticsearch容器。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.D.Chuang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值