docker中安装配置elasticsearch
以下所有指令都以root用户执行:
1.下载镜像文件(以7.4.2为例)
docker pull elasticsearch:7.4.2
存储和检索数据
docker pull kibana:7.4.2
可视化检索数据
2.创建实例
2-1创建实例之前,先创建几个文件夹,用来将docker中的elasticsearch所有的配置文件和数据等信息都挂载到外部,方便我们修改或者阅读
(yourDirName为自己取的目录名,可以取一个有特征的名字,方便区分。)
mkdir -p /yourDirName/elasticsearch/config
mkdir -p /yourDirName/elasticsearch/data
修改权限:将/yourDirName/elasticsearch/下的权限改为所有人可读可写可执行:
chmod -R 777 /yourDirName/elasticsearch/
2-2 写入配置,使得elasticsearch可以被远程的任意机器进行访问:
echo "http.host: 0.0.0.0" >> /yourDirName/elasticsearch/config/elasticsearch.yml
注意host:后面有个空格,可以进入到conf目录下使用cat elasticsearch.yml
查看是否写入成功
2-3:对elasticsearch进行配置(重点!!!)
完整指令如下:(务必先将完整指令一起复制,再根据下方对该指令的解释针对个人情况进行修改)
[root@hzt conf]# docker run --name hztElasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /yourDirName/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /yourDirName/elasticsearch/data:/usr/share/elasticsearch/data \
-v /yourDirName/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2
下面是对该指令的逐一解释说明其作用:
为elasticsearch容器设置一个名字,最好和elasticsearch相关的名字(我这里使用hztElasticsearch 为elasticsearch容器的名字)。配置端口,这里9300表示集群通信端口:
docker run --name hztElasticsearch -p 9200:9200 -p 9300:9300
指定elasticsearch以单节点模式运行:
-e "discovery.type=single-node"
设置elasticsearch运作占用的最大内存,可根据自己服务器的实际情况来设置:
-e ES_JAVA_OPTS="-Xms64m -Xmx512m"
将elasticsearch中的文件与2-1创建的文件进行一一关联挂载:
-v /yourDirName/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /yourDirName/elasticsearch/data:/usr/share/elasticsearch/data \
-v /yourDirName/elasticsearch/plugins:/usr/share/elasticsearch/plugins
(这里的plugins目录会自动创建)
后台启动elasticsearch:7.4.2
-d elasticsearch:7.4.2
3.使用docker ps 查看效果,是否启动成功
如果没有启动成功,可以选择手动启动elasticsearch容器
使用docker ps -a
查看所有容器
再使用docker start 【id】
【id】为docker ps -a查看到的elasticsearch的id
4.远程访问elasticsearch:
在浏览器输入ip:9200,效果如下
(使用云服务器的需要在安全组中放行9200,9300端口)