【Docker容器】Docker安装ElasticSearch详细步骤(看这一篇就够啦!)

前言

帮助有些小伙伴能快速学习ElasticSearch的语法命令不至于在安装的时候卡住或者放弃,只要按照下面的安装步骤就可以快速启动一个es进行学习啦,话不多说直接开搞。

安装Kibana

【Docker容器】Docker安装Kibana详细步骤(看完这一篇就够啦!)

安装 ES

1.访问镜像官网

https://hub.docker.com/

搜索elasticsearch进行查找,选择合适的版本,这里选择 elasticsearch:8.2.0

楼主在写这篇文章的时候刚好这个国外的网站进不去,就没截图了。

2.找到对应的版本,复制右侧的命令即可。
#将命令放在Linux上敲击回车即可
docker pull elasticsearch:8.2.0
3.查看镜像

等拉取好了镜像之后,docker images 查看一下镜像是否拉取成功。

在这里插入图片描述

4.启动es
docker run -it elasticsearch:8.2.0 /bin/bash

先简单启动 看一下我们要挂载一些什么样的目录,这个不是我们最终的启动命令。通过lspwd命令我们大概知道了es的关键目录大概是以下三个。
在这里插入图片描述

  • 存放配置相关的:/usr/share/elasticsearch/config
  • 存放数据相关的:/usr/share/elasticsearch/data
  • 存放插件相关的:/usr/share/elasticsearch/plugins
#退出容器
ctrl+c 或者 exit
最终构建容器命令
docker run \
--name es \
--privileged=true \
-p 9200:9200 \
-p 9300:9300 \
-v /mydata/es/config:/usr/share/elasticsearch/config \
-v /mydata/es/data:/usr/share/elasticsearch/data \
-v /mydata/es/plugins:/usr/share/elasticsearch/plugins \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-d elasticsearch:8.2.0

启动之后如果发现没成功启动容器,通过docker logs es看到以下错误,那么就是咋们自己创建的挂载目录可能权限不够高。

Skipping security auto configuration because the configuration file [/usr/share/elasticsearch/config/elasticsearch.yml] is missing or is not a regular file
Exception in thread "main" java.nio.file.NoSuchFileException: /usr/share/elasticsearch/config/jvm.options
        at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:92)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
        at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
        at java.base/sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:218)
        at java.base/java.nio.file.Files.newByteChannel(Files.java:380)
        at java.base/java.nio.file.Files.newByteChannel(Files.java:432)
        at java.base/java.nio.file.spi.FileSystemProvider.newInputStream(FileSystemProvider.java:422)
        at java.base/java.nio.file.Files.newInputStream(Files.java:160)
        at org.elasticsearch.tools.launchers.JvmOptionsParser.readJvmOptionsFiles(JvmOptionsParser.java:169)
        at org.elasticsearch.tools.launchers.JvmOptionsParser.jvmOptions(JvmOptionsParser.java:125)
        at org.elasticsearch.tools.launchers.JvmOptionsParser.main(JvmOptionsParser.java:87)

给三个挂载目录进行chmod 777

chmod 777 /mydata/es/config
chmod 777 /mydata/es/data
chmod 777 /mydata/es/plugins

直接先启动一个简单的es容器

docker run -d --name elasticsearch -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:8.2.0

将容器里的config文件夹的东西拷贝到宿主机上

docker cp elasticsearch:/usr/share/elasticsearch/config /mydata/es

删除临时容器

 docker stop elasticsearch
 docker rm -f elasticsearch

修改elasticsearch.yml文件

vim  /mydata/es/config/elasticsearch.yml

【Docker容器】Docker安装ElasticSearch详细步骤(看这一篇就够啦!)_第1张图片

8.x以上好像都默认开启这个ssl校验,直接给他关掉。

重新启动完整命令

docker run \
--name es \
--privileged=true \
-p 9200:9200 \
-p 9300:9300 \
-v /mydata/es/config:/usr/share/elasticsearch/config \
-v /mydata/es/data:/usr/share/elasticsearch/data \
-v /mydata/es/plugins:/usr/share/elasticsearch/plugins \
-e ES_JAVA_OPTS="-Xms512m -Xmx512m" \
-e "discovery.type=single-node" \
-d elasticsearch:8.2.0

或者你前面已经启动了那个命令了,所以直接

docker start es
5.es访问界面

http://你的ip:9200

【Docker容器】Docker安装ElasticSearch详细步骤(看这一篇就够啦!)_第2张图片

你可能感兴趣的:(Docker,elasticsearch,docker,java)