mac下docker 安装 ES的详细过程

 更新时间:2023年06月13日 11:16:05   作者:chen_peng7  
这篇文章主要介绍了mac下docker 安装 ES的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一. 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="-Xms256m -Xmx256m" 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

访问curl localhost:9200

curl localhost:9200
{
  "name" : "61c83e2b4f2b",
  "cluster_name" : "docker-cluster",
  "cluster_uuid" : "Wp0M92PxQYyYbJVL_2IKmA",
  "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"
}

启动成功

到此这篇关于mac docker 安装 ES的文章就介绍到这了,更多相关docker 安装 ES内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • docker安装单机版kafka并使用的详细步骤

    docker安装单机版kafka并使用的详细步骤

    这篇文章主要为大家详细介绍了docker安装单机版kafka并使用的详细步骤,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2025-06-06
  • docker容器新增或修改端口映射方式

    docker容器新增或修改端口映射方式

    这篇文章主要介绍了docker容器新增或修改端口映射方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • Docker中使用gosu的方法详解

    Docker中使用gosu的方法详解

    在Docker镜像中启动服务时,我们通常不希望以root身份运行主进程,sudogosu是一个非常轻量的工具,功能类似sudo,但不会产生额外进程,非常适合在Docker容器中用来切换用户,本文给大家介绍Docker中使用gosu的方法,感兴趣的朋友一起看看吧
    2025-10-10
  • Docker Compose构建Jenkins的实现

    Docker Compose构建Jenkins的实现

    本文主要介绍了Docker Compose构建Jenkins的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-06-06
  • 解决Docker镜像拉取超时及优化网络配置的方法(failed to do request: Head “https://registry-1.docker.io/v2/*)

    解决Docker镜像拉取超时及优化网络配置的方法(failed to do request

    在使用 Docker 构建和部署应用时,拉取镜像是一个关键的步骤,然而,在一些网络环境中,特别是企业内部网或受限网络环境中,可能会遇到 Docker 镜像拉取失败或超时的问题,这篇博客将详细探讨如何应对 Docker 镜像拉取超时的问题,需要的朋友可以参考下
    2024-11-11
  • Docker 容器全生命周期管理与运维命令实战演练

    Docker 容器全生命周期管理与运维命令实战演练

    本文将深入剖析 Docker 容器管理的二十余条核心命令,结合实际操作案例与执行结果,详细解读从容器创建、运行、调试到销毁的全过程,感兴趣的朋友跟随小编一起看看吧
    2025-12-12
  • 基于Docker实现MySQL主从复制的详细教程

    基于Docker实现MySQL主从复制的详细教程

    这篇博客整理了如何在Docker环境下配置MySQL主从复制,通过创建和命名两个MySQL容器,设置独立IP,并详细说明了在宿主机上持久化数据、开启root远程访问及添加复制用户的过程,需要的朋友可以参考下
    2024-10-10
  • docker build与Dockerfile问题

    docker build与Dockerfile问题

    这篇文章主要介绍了docker build与Dockerfile问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • Docker环境下的Apache NiFi安装实践及遇到问题解决方案

    Docker环境下的Apache NiFi安装实践及遇到问题解决方案

    由于最近用到数据同步,故打算采用中间件工具来做数据同步,谁知第一步部署Apache NiFi环境就耽搁了好久,其中遇到一些问题,故记录下来部署成功记录,下面给大家详细介绍Docker环境下的Apache NiFi安装实践及遇到问题解决方案,感兴趣的朋友一起看看吧
    2025-05-05
  • 卸载docker-compose实现过程

    卸载docker-compose实现过程

    本文详细描述了如何通过命令行卸载Docker Compose,包括检查已安装的包名、使用`yum remove`卸载、清理残留文件、验证卸载结果以及注意事项
    2025-12-12

最新评论