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部署(使用docker-compose)教程

    手把手教你docker部署(使用docker-compose)教程

    使用 Docker Compose 可以轻松、高效的管理容器,下面这篇文章主要给大家介绍了关于手把手教你docker部署(使用docker-compose)的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2023-01-01
  • Dockerfile中的ENV指令的具体使用详解

    Dockerfile中的ENV指令的具体使用详解

    这篇文章主要介绍了Dockerfile中的ENV指令的具体使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Docker Desktop启动失败的解决(Docker failed to initialize Docker Desktop is shutting down)

    Docker Desktop启动失败的解决(Docker failed to i

    本文主要介绍了Docker Desktop启动失败的解决(Docker failed to initialize Docker Desktop is shutting down),文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-03-03
  • docker images本地迁移的实现

    docker images本地迁移的实现

    这篇文章主要介绍了docker images本地迁移的实现方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • docker容器下配置jupyter notebook的操作

    docker容器下配置jupyter notebook的操作

    这篇文章主要介绍了docker容器下配置jupyter notebook的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03
  • 解决docker pull镜像速度慢的问题的方法

    解决docker pull镜像速度慢的问题的方法

    本篇文章主要介绍了解决docker pull镜像速度慢的问题的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-11-11
  • 常用的Docker命令及示例汇总分析

    常用的Docker命令及示例汇总分析

    这篇文章主要介绍了常用的Docker命令及示例的汇总分析,附含源码示例分析,有需要的朋友可以借鉴参考下,希望可以对广大读者有所帮助
    2021-09-09
  • DockerToolBox文件挂载的实现代码

    DockerToolBox文件挂载的实现代码

    这篇文章主要介绍了DockerToolBox文件挂载的实现代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • Docker容器的网络管理和网络隔离的实现

    Docker容器的网络管理和网络隔离的实现

    这篇文章主要介绍了Docker容器的网络管理和网络隔离的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-05-05
  • Docker核心原理之 Cgroup详解

    Docker核心原理之 Cgroup详解

    cgroup的内核通过hook钩子来实现管理进程资源,提供了一个统一的接口,从单个进程的资源控制到操作系统层面的虚拟卡的过渡,今天通过本文给大家介绍Docker核心原理之 Cgroup详解,需要的朋友参考下吧
    2021-07-07

最新评论