我的操作步骤
docker pull elasticsearch:7.4
(拉取es)
/将es中配置文件挂载到外面的目录,通过修改虚拟机外面的文件夹es配置,进而修改docker中es的配置 mkdir -p
mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
echo "http.host: 0.0.0.0">> /mydata/elasticsearch/config/elasticsearch.yml
写了一个配置
http.host:0.0.0.0 代表es可以被远程的任何机器访问
docker run --name elasticsearch -p 9200:9200 -p 9300:9300 --restart=always \
-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
```bash
//-p暴露两个端口 9200 9300, 9200是发送http请求——restapi的端口,9300是es在分布式集群状态下,结点之间的通信端口, \代表换行下一行,
//-e single-node 是以单节点方式运行,ES_JAVA_OPTS不指定的话,es一启动,会将内存全部占用,整个虚拟机就卡死了,
//-v 进行挂载,目录中配置,数据等一一关联 -d 后台启动es使用指定的镜像 z
问题
docker ps
查看发现es容器在启动成功后闪退
查看日志
这是由于权限导致的
这是因为目前 es 的配置文件的权限导致的,因此需要修改一下 es 的配置文件的权限:
chmod -R 777 /mydata/elasticsearch/
docker安装kibana
docker run --name kibana -e
ELASTICSEARCH_HOSTS=http://192.168.56.10:9200 -p 5601:5601 -d
kibana:7.4.2