Docker部署Elasticsearch和Kibana
官方镜像文档:docker仓库
Elasticsearch
-
选择对应版本,拉取镜像
docker pull elasticsearch:5.3.0
-
因为要将容器中es的配置文件及数据挂载到宿主机上,所以需要在宿主机上新建配置文件目录,配置文件目录下新建elasticsearch.yml文件
/usr/local/opt/docker-web/es5.3.0/config/elasticsearch.yml
-
在elasticsearch.yml中编写配置信息
http.port: 9200 network.host: #宿主机ip network.bind_host: 0.0.0.0 network.publish_host: #宿主机ip
-
启动镜像及挂载目录
-d:后台运行 -p:映射端口 -v:挂载es配置文件、插件及数据目录 -e:指定es启动初始内存大小 docker run -d -p 9200:9200 -p 9300:9300 -v /usr/local/opt/docker-web/es5.3.0/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml -v /usr/local/opt/docker-web/es5.3.0/plugins:/usr/share/elasticsearch/plugins -v /usr/local/opt/docker-web/es5.3.0/data:/usr/share/elasticsearch/data -e ES_JAVA_OPTS="-Xms256m -Xmx256m" 镜像id
-
启动成功
curl localhost:9200
Kibana
-
拉取kibana镜像,需要和es版本一致
docker pull kibana:5.3.0
-
同es一样。需要在宿主机上新建配置文件目录并新增kibana.yml文件
/usr/local/opt/docker-web/kibana5.3.0/config/kibana.yml
-
在5.3.0版本中容器中的kibana没有config目录,所以先进入容器在
/usr/share/kibana/
下新建config目录mkdir config
-
在宿主机中的kiban.yml中添加配置信息
由于容器间是互相隔离的,所以kibana连接es时,不能直接使用外网ip
,需要通过veth-pair技术充当桥梁的作用进行容器间连接;在安装docker时就会分配一个网卡docker0,每启动一个容器时,docker0就会分配一个ip给容器,所以通过docker0就可以实现容器间的互连。
server.port: 5601 server.host: "0.0.0.0" elasticsearch.url: "http://dokcer0ip:9200" kibana.index: ".kibana"
-
启动kiban镜像
docker run -d -p 5601:5601 -v /usr/local/opt/docker-web/kibana5.3.0/config/kibana.yml:/usr/share/kibana/config/kibana.yml 镜像id
-
访问测试
外网ip:5601