M1芯片 Mac安装Docker、ElasticSearch等

1、Docker账号

可以申请一个自己的Docker账号

在这里插入图片描述

2、M1芯片 Mac安装Docker

进入官网下载M1芯片的 桌面版Docker
在这里插入图片描述

2.1、配置Docker,镜像加速

鉴于国内网络问题,后续拉取 Docker 镜像十分缓慢,我们可以需要配置加速器来解决,我使用的是网易的镜像地址:http://hub-mirror.c.163.com。

在任务栏点击 Docker for mac 应用图标 -> Perferences… -> Daemon -> Registry mirrors。在列表中填写加速器地址即可。修改完成之后,点击 Apply & Restart 按钮,Docker 就会重启并应用配置的镜像地址了。

在这里插入图片描述

// 仅供参考

{
  "builder": {
    "gc": {
      "enabled": true,
      "defaultKeepStorage": "20GB"
    }
  },
  "features": {
    "buildkit": true
  },
  "experimental": true,
  "registry-mirrors": [
    "https://0wg8f6sb.mirror.aliyuncs.com",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]
}

3、安装镜像

3.1、Docker官网查找并安装支持M1ElasticSearch镜像

因为我是M1芯片的Mac,其他架构的请忽略,无脑安装即可!

下载安装Docker后,修改内存,不然elasticsearch会自动退出,当然也可以不调,下面👇有说明原因和解决方法!
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-YBxZnp26-1640199321510)(media/16384581707788/16401900373364.jpg)]

注意:
ElasticSearch是使用Java编写的,默认启动占用2G的内存空间,所以注意在启动时,如果仅测试使用,可以指定参数限制分配的内存,-e ES_JAVA_OPTS="-Xms256m -Xmx256m"

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-0Vi9lzxn-1640199321510)(media/16384613218255/16401922277441.jpg)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SU5g52fw-1640199321510)(media/16384613218255/16401924055904.jpg)]

拷贝完镜像后安装即可,安装成功如下图:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-oQhdo2rO-1640199321510)(media/16384581707788/16401930332001.jpg)]

安装&启动 ElasticSearch 7.16.2
1. 搜索(M1芯片兼容性问题,注意查看)
    docker search elasticsearch
    或者在官网搜索
2. 从官网搜索拷贝的下载命令
    docker pull elasticsearch
下载指定版本 7.16.2
    docker pull elasticsearch:7.16.2
3. 启动ElasticSearch,最后一个参数:e082d8ac7e5e(是上面截图中的image id)
    docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -d -p 9200:9200 -p 9300:9300 --name ES01 e082d8ac7e5e

# 启动命令,参数简单说明
# -d:后台运行
# -p: 将主机的端口映射到容器的一个端口    主机端口:容器内部的端口

4. 查看启动的容器
    docker ps
首次启动👁验证失败,排查日志
1、查看所有的容器: docker ps -a

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-L17zqupJ-1640199321510)(media/16384581707788/16401954319349.jpg)]

2、根据 ElasticSearch的容器ID查看此容器日志:docker logs 35771ffd2bf8
...... 省略一万字,❌错误原因在最后,自行翻译,大概意思有几个默认设置没有配置,需要至少配置一个!!! ......

{"type": "server", "timestamp": "2021-12-22T17:36:39,210Z", "level": "INFO", "component": "o.e.b.BootstrapChecks", "cluster.name": "docker-cluster", "node.name": "35771ffd2bf8", "message": "bound or publishing to a non-loopback address, enforcing bootstrap checks" }

ERROR: [1] bootstrap checks failed. You must address the points described in the following [1] lines before starting Elasticsearch.
bootstrap check failure [1] of [1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
ERROR: Elasticsearch did not exit normally - check the logs at /usr/share/elasticsearch/logs/docker-cluster.log
{"type": "server", "timestamp": "2021-12-22T17:36:39,226Z", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "docker-cluster", "node.name": "35771ffd2bf8", "message": "stopping ..." }
{"type": "server", "timestamp": "2021-12-22T17:36:39,236Z", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "docker-cluster", "node.name": "35771ffd2bf8", "message": "stopped" }
{"type": "server", "timestamp": "2021-12-22T17:36:39,236Z", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "docker-cluster", "node.name": "35771ffd2bf8", "message": "closing ..." }
{"type": "server", "timestamp": "2021-12-22T17:36:39,243Z", "level": "INFO", "component": "o.e.n.Node", "cluster.name": "docker-cluster", "node.name": "35771ffd2bf8", "message": "closed" }
{"type": "server", "timestamp": "2021-12-22T17:36:39,245Z", "level": "INFO", "component": "o.e.x.m.p.NativeController", "cluster.name": "docker-cluster", "node.name": "35771ffd2bf8", "message": "Native controller process has stopped - no new native processes can be started" }

日志的查看出了上述方式,也可以在客户端操作,更简单丝滑,如下图:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8qcftwFo-1640199321511)(media/16384581707788/16401960474450.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9JRGaxFF-1640199321511)(media/16384581707788/16401960567068.jpg)]

3、删除一个容器(docker rm 容器id): docker rm 35771ffd2bf8
4、修改启动命令,添加缺失参数: "discovery.type=single-node"
# 说明:如果您在本地运行 Elasticsearch(单个节点)或仅在云上使用单个节点,则只需在启动时加上
# "discovery.type=single-node" 即可,以避免生产检查,命令如下

docker run -e ES_JAVA_OPTS="-Xms256m -Xmx256m" -e "discovery.type=single-node" -d -p 9200:9200 -p 9300:9300 --name ES01 e082d8ac7e5e

Docker官方截图如下:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-eadFtYDc-1640199321511)(media/16384581707788/16401978813632.jpg)]

5、运行上述修改后的命令启动成功!

启动成功后,验证-浏览器输入:http://10.211.55.5:9200/
显示如下即为成功
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-AfewEOv0-1640199321511)(media/16384581707788/16401980138235.jpg)]

其他:安装Kibana、配置elasticsearch的ik分词器等这里就不赘述,可自行查阅资料学习

后续待补充…

最后喜欢的小伙伴,记得关注收藏哦!😏🍭😘

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐