docker下安装elasticsearch
1、elasticsearch安装
1.1 拉取镜像
首先从阿里云拉取镜像:
docker pull docker.elastic.co/elasticsearch/elasticsearch
默认拉取的是最新的latest版本,但是会报错,所以我们要指定版本
docker pull docker.elastic.co/elasticsearch/elasticsearch:7.3.0
我这里使用的7.3.0版本,如果需要其他版本, 可以在https://hub.docker.com/
中查找适合自己的版本.
1.2 启动镜像
为了方便,使用开发者模式启动
1.2.1 创建网络
docker network create esnet
1.2.2 启动镜像
docker run -e ES_JAVA_OPTS="-Xms512m -Xmx512m" --name es -p 9200:9200 -p 9300:9300 --network esnet -e "discovery.type=single-node" bdaab402b220
-e ES_JAVA_OPTS 指定内存大小
–name 名称 给容器起个名字
-p 外部访问端口:容器端口 9200是供htpp访问端口,9300是供tcp访问的端口,如果不做端口映射,浏览器就不能访问elasticsearch的服务
–network 网络名 用于多个服务通信与隔离,例如用kibana连接elasticsearch就需要他们在同一个网络下
bdaab402b220 通过docker images命令查看到需要创建的容器id,此处用镜像名也可以
查看镜像是否启动成功
docker ps
通过查看status,看到镜像启动成功,在浏览器输入http://IP:9200/ ,显示如下:
2、kibana安装
2.1 拉取镜像
kibana需要指定和es相同的版本
docker pull docker.elastic.co/kibana/kibana:7.3.0
2.2 启动镜像
docker run -it -d -e ELASTICSEARCH_HOSTS=http://ip:9200 -e ES_JAVA_OPTS="-Xms512m -Xmx512m" --name kibana -p 5601:5601 --network esnet docker.elastic.co/kibana/kibana:7.3.0
在浏览器输入http://IP:5601/,显示如下
docker logs 容器ID,发现设置的URL并没有生效还是默认的elasticsearch
这里需要我们手动进入到yml配置文件中进行修改
docker exec -it 容器ID /bin/bash
vi /cofnfig/kibana.yml
把elasticsearch.hosts对应的IP修改能你自己的,然后重启启动容器,应该就可以了。
注:我的在修改之后还是报错 “Kibana server is not ready yet”
经过网上查询,是防火墙的问题
方法一:关闭防火墙
centos关闭防火墙的操作为
systemctl stop firewalld
方法二: 在防火墙上开发指定端口
firewall-cmd --zone=public --add-port=5601/tcp --permanent
firewall-cmd --reload
部分参考自文章:https://blog.csdn.net/chihaihai/article/details/103254025