docker安装elasticsearch

1、下载镜像文件

docker pull elasticsearch:7.4.2
docker pull kibana:7.4.2

2、创建实例

mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
//写一个配置到配置文件,代表es可以被远程的任何机器访问
echo "http.host:0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
docker run --name elasticsearch --net=host -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms256m -Xmx512m" \
-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


说明:9200是elasticsearch提供服务的端口,9300是分布式集群性节点通讯端口

执行上面的命令,发现报错,查看日志文件

docker logs -f elasticsearch
image.png

解决方案:修改elasticsearch.yml中的配置

http.host: 0.0.0.0
#network.host: 0.0.0.0
#discovery.seed_hosts: ["127.0.0.1", "[::1]"]

启动还是报错:


image.png

看错误我们会以为是es容器里的/usr/share/elasticsearch/data/nodes文件夹目录没有读写权限,其实给提示误导了,实际是挂载的目录没有读写权限。比如我们宿主主机的配置目录为:/mydata/elasticsearch/data/,那么我们需要赋予它读写权限:

chmod - R 777 /mydata/elasticsearch/

访问:127.0.0.1:9200,看到下图,说明成功:


image.png

你可能感兴趣的:(docker安装elasticsearch)