1. 拉取镜像
docker pull elasticsearch:7.4.2
docker pull kibana:7.4.2
2. 创建两个文件夹,之后会和docker 相关的配置文件相挂载,以后修改这两个文件夹中的内容,也就修改了docker 中elasticsearch的配置
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
3. 创建elasticsearch.yml文件,并向其中写入 http.host: 0.0.0.0
echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
(注意:如果host: 0.0.0.0 这个冒号后面没有空格,则会在后面启动的时候报错,报错信息如下所示:)
4. 启动elasticsearch
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.4.2
解释
--name elasticsearch :就是为容器起了个名字,叫elasticsearch
-p 9200:9200 : 发送http 请求的时候用的是9200 端口
-p 9300:9300 : es在集群模式下,各节点间通信的端口
-e "discovery.type=single-node" 表示以单节点模式运行
-e ES_JAVA_OPTS="-Xms64m -Xmx128m" 设置运行内存大小,如果不设置, elasticsearch 起来后就会占用全部内存,导致机器卡死
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml 表示设置挂载,即将前面这个elasticsearch.yml 和后面这个elasticsearch.yml 进行一一关联,当修改前面这个文件的时候,后面这个也就修改了
-d elasticsearch:7.4.2 表示用的是 elasticsearch:7.4.2 这个版本的镜像
5.查看启动运行情况
docker ps -a
注意:如果看到没有启动成功
查看日志
docker logs 容器ID
如果是权限问题,执行命令进行赋权
chmod -R 777 /mydata/elasticsearch/
6. 若之前启动失败,再次运行,并验证运行情况
docker start 容器ID
docker ps -a
访问IP:9200 ,如果可以看到ES版本信息,即安装启动成功