mac docker 安装 ES

本文介绍了如何使用Docker安装Elasticsearch8.7.1,包括下载镜像、启动容器、配置内存限制、解决访问问题以及数据持久化的操作。接着,文章详细讲解了安装Kibana的过程,包括下载镜像、创建配置文件、挂载数据卷以及处理安全验证。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一. docker 安装 ES

1. 下载镜像

docker pull elastcisearch:8.7.1

2. 启动镜像

docker run -d --name elasticsearch  -p 9200:9200 -p 9300:9300 -e  "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms512m -Xmx512m" elasticsearch:8.7.1

参数说明

  • -d 后台启动
  • –name 起别名即:NAMES
  • -p 9200:9200 将端口映射出来
    elasticsearch的9200端口是供外部访问使用;9300端口是供内部访问使用集群间通讯
  • -e "discovery.type=single-node"单节点启动
  • -e ES_JAVA_OPTS="-Xms256m -Xmx256m" 限制内存大小

3.访问es

curl http://localhost:9200
curl: (52) Empty reply from server

4.进入docker

docker exec -it 0a9bb3fa153d bash

docker exec 在运行的容器中执行命令

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

  • -t :分配一个伪终端

找到es配置文件位置

/usr/share/elasticsearch/config/elasticsearch.yml

将docker容器中的配置文件拷贝到本地文件

docker cp 0a9bb3fa153d:/usr/share/elasticsearch/config/elasticsearch.yml /usr/local/share/elasticsearch/elasticsearch.yml

将 xpack.security.enable: true 改为 xpack.security.enable: false

再将修改后的配置文件拷贝回docker中

docker cp /usr/local/share/elasticsearch/elasticsearch.yml 0a9bb3fa153d:/usr/share/elasticsearch/config/elasticsearch.yml

重启docker

docker stop 0a9bb3fa153d
docker start 0a9bb3fa153d

curl localhost:9200
{
  "name" : "0a9bb3fa153d",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "8hyCPOJESfKParQcDmGgtw",
  "version" : {
    "number" : "8.7.1",
    "build_flavor" : "default",
    "build_type" : "docker",
    "build_hash" : "f229ed3f893a515d590d0f39b05f68913e2d9b53",
    "build_date" : "2023-04-27T04:33:42.127815583Z",
    "build_snapshot" : false,
    "lucene_version" : "9.5.0",
    "minimum_wire_compatibility_version" : "7.17.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}

5. 决定将重新建立docker镜像,本机创建文件夹,并将docker容器中的配置文件等信息拷贝出来,重新起容器并挂载外部文件夹

mkdir -p /Users/chenpeng/share/elasticsearch/{config,data,logs,plugins}

docker cp 0a9bb3fa153d:/usr/share/elasticsearch/config /Users/chenpeng/share/elasticsearch
docker cp 0a9bb3fa153d:/usr/share/elasticsearch/logs /Users/chenpeng/share/elasticsearch
docker cp 0a9bb3fa153d:/usr/share/elasticsearch/data /Users/chenpeng/share/elasticsearch
docker cp 0a9bb3fa153d:/usr/share/elasticsearch/plugins /Users/chenpeng/share/elasticsearch

注意mac系统不要把文件夹放在系统文件夹中,容易没有权限。我之前放在宿主的/usr/share/elasticsearch目录下,不管如何更改权限,docker容器都没有权限访问。

确保有以下几个配置,原有的配置可以不改动

cluster.name: "docker-cluster"
network.hosts:0.0.0.0
# 跨域
http.cors.allow-origin: "*"
http.cors.enabled: true
http.cors.allow-headers: Authorization,X-Requested-With,Content-Length,Content-Type

删除临时容器

docker stop 0a9bb3fa153d
docker rm 0a9bb3fa153d

重新起容器并挂起文件夹

docker run -d --name elasticsearch \
-p 9200:9200 \
-p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-e TAKE_FILE_OWNERSHIP=true \
-v /Users/chenpeng/share/elasticsearch/logs:/usr/share/elasticsearch/logs \
-v /Users/chenpeng/share/elasticsearch/data:/usr/share/elasticsearch/data \
-v /Users/chenpeng/share/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-v /Users/chenpeng/share/elasticsearch/config:/usr/share/elasticsearch/config \
elasticsearch:8.7.1

进入容器设置密码

docker exec -it elasticsearch bash
bin/elasticsearch-reset-password --username elastic -i

#bin/elasticsearch-setup-passwords interactive

 

curl -k -u elastic:123456 https://localhost:9200

启动成功

二. 安装kibana

2.1 下载镜像

docker pull kibana:8.7.1

2.2 运行临时容器

docker run -idt --name kibana -p 5601:5601 kibana:8.7.1

2.3 创建本地挂载文件

docker cp kibana:/usr/share/kibana/config /Users/chenpeng/share/kibana

修改配置文件

# Default Kibana configuration for docker target
server.host: "0"
server.shutdownTimeout: "5s"
elasticsearch.hosts: [ "http://localhost:9200" ] # 记得修改ip
monitoring.ui.container.elasticsearch.enabled: true
i18n.locale: "zh-CN"

2.4 停掉删掉镜像并重新创建

docker stop kibana
docker rm kibana
docker run -d --name kibana -p 5601:5601 -v /Users/chenpeng/share/kibana/config:/usr/share/kibana/config kibana:8.7.1

http://localhost:5601

2.5 访问页面发现需要es token

2.6 进入es容器获取token 

docker exec -it 61c83e2b4f2b bash
bin/elasticsearch-create-enrollment-token --scope kibana

将token粘到kibana中,提示输入验证码

2.7 进入kibana容器,获取验证码

docker exec -it kibana bash
bin/kibana-verification-code
#Your verification code is:  976 363

输入用户名密码elastic 123456

 

### 使用 Docker Compose 在 Mac安装 Elasticsearch 要在 Mac 上通过 Docker Compose 安装 Elasticsearch,可以按照以下方法操作: #### 准备工作 确认已经安装DockerDocker Compose。可以通过运行 `docker -v` 来验证 Docker 是否已安装[^2]。如果未安装,则需先完成安装。 对于 Docker Compose 的安装,在 Linux 系统下通常需要手动下载二进制文件并赋予执行权限。然而在 macOS 中,Docker Desktop 已经内置了 Docker Compose 功能,因此无需额外安装。 #### 创建 `docker-compose.yml` 文件 创建一个新的目录用于存储配置文件,并在此目录中新建名为 `docker-compose.yml` 的文件。以下是该文件的内容示例: ```yaml version: '3.7' services: elasticsearch: image: docker.elastic.co/elasticsearch/elasticsearch:8.9.0 container_name: elasticsearch environment: - discovery.type=single-node - ELASTIC_PASSWORD=your_password_here ports: - "9200:9200" - "9300:9300" volumes: - esdata:/usr/share/elasticsearch/data ulimits: memlock: soft: -1 hard: -1 networks: - elastic-network networks: elastic-network: driver: bridge volumes: esdata: ``` 上述配置说明如下: - **image**: 指定使用的 Elasticsearch 镜像版本。 - **environment**: 设置单节点模式以及默认管理员密码[^1]。 - **ports**: 将容器内的端口映射到主机上的指定端口。 - **volumes**: 数据持久化路径设置,防止数据丢失。 - **ulimits**: 提升内存锁定限制以满足 Elasticsearch 运行需求[^3]。 #### 启动服务 进入包含 `docker-compose.yml` 文件的目录,运行以下命令启动 Elasticsearch 服务: ```bash docker-compose up -d ``` 此命令将以分离模式后台运行容器。完成后可通过访问 `http://localhost:9200/` 测试是否成功部署 Elasticsearch 实例。 #### IK 分词器安装 为了支持中文分词功能,可扩展安装 IK 分词插件。首先登录至正在运行中的 Elasticsearch 容器内部环境: ```bash docker exec -it elasticsearch bash ``` 接着利用官方提供的工具来加载所需插件包: ```bash bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v8.9.0/elasticsearch-analysis-ik-8.9.0.zip ``` 注意替换链接地址为最新版兼容当前 ES 版本号的资源位置。 #### 密码管理与 Analyzer 设定 初次连接时需要用到预设好的超级用户账户及其初始密钥字符串(即前文中定义过的 `ELASTIC_PASSWORD` 参数)。另外关于自定义 analyzer 方面的知识点,请查阅相关文档进一步了解其语法结构及应用场景实例。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值