跳到主要内容

单节点

2024年06月16日
柏拉文
越努力,越幸运

一、认识


二、操作


2.1 搜索 Elasticsearch

docker search elasticsearch

2.2 配置 Docker 虚拟内存

Mac 上运行可能需要增加 vm.max_map_count,你可以在 Docker Desktop 设置中增加此值。通常默认值较小,导致 Elasticsearch 启动失败。可以直接在 Docker For Mac -> Resources -> Resource Allocation 往大调整 CPU LimitMemory limit:SwapVirtual disk limit 等。

2.3 获取 Elasticsearch 镜像

MacOS 平台下载

1. 通过 docker pull elasticsearch:8.14.1 下载: 下载速度慢,经常失败、超时

docker pull elasticsearch:8.14.1

2. 通过 docker pull docker.elastic.co/elasticsearch/elasticsearch:8.14.1: 下载慢,但是可以下载成功

docker pull docker.elastic.co/elasticsearch/elasticsearch:8.14.1

3. 通过 docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.elastic.co/elasticsearch/elasticsearch:8.14.1: 国内镜像,100% 同步官方镜像。该镜像来源于 渡渡鸟容器镜像小站

docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.elastic.co/elasticsearch/elasticsearch:8.14.1

Linux 平台下载

备注: elasticsearch:8.14.1Docker 版本有要求,应该是要最新版的才可以正常运行。

2.4 映射 Elasticsearch 配置文件

1. 创建本地 dataconfig 目录: 可以实现 Elasticsearch 本地持久化存储。

mkdir -p ~/docker/elasticsearch/config ~/docker/elasticsearch/data

2. 设置文件访问权限: 避免因权限问题导致文件写入失败,Elasticsearch 容器服务停止

chmod -R 777 ~/docker/elasticsearch

2.5 编辑 Elasticsearch 配置文件

在本地 config 目录中,添加 elasticsearch.yml 文件, 配置如下所示

vim ~/docker/elasticsearch/config/elasticsearch.yml
http:
host: 0.0.0.0
xpack.security.enabled: false
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
enabled: false

http.cors.enabled: true
http.cors.allow-origin: "*"

2.6 运行 Elasticsearch 容器镜像

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" -v ~/docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v ~/docker/elasticsearch/data:/usr/share/elasticsearch/data -v ~/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins docker.elastic.co/elasticsearch/elasticsearch:8.14.1
  • -d: 后台运行容器

  • --name elasticsearch: 为容器指定一个名称

  • -p 9200:9200: 将容器的端口 9200 映射到宿主机端口 9200

  • -p 9300:9300: 将容器的端口 9300 映射到宿主机端口 9300

  • -e "discovery.type=single-node": 设置 Elasticsearch 的发现类型为单节点模式,这样 Elasticsearch 将以单节点的方式运行而无需进行集群发现。

  • -e ES_JAVA_OPTS="-Xms64m -Xmx512m": 设置 ElasticsearchJava 虚拟机参数,指定初始堆内存为 512MB,最大堆内存为 512MB

  • -v ~/docker/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml: 将宿主机上的 Elasticsearch 配置文件 ~/docker/elasticsearch/config/elasticsearch.yml 挂载到容器内的配置文件路径,以便使用自定义的配置。

  • -v ~/docker/elasticsearch/data:/usr/share/elasticsearch/data: 将容器内的 data 目录映射到宿主机

  • -v ~/docker/elasticsearch/plugins:/usr/share/elasticsearch/plugins: 将容器内的 plugins 目录映射到宿主机

2.7 访问 Elasticsearch 容器服务

浏览器访问 localhost:9200 即可。