使用Docker部署es容器:
1. 由于两个容器需要连接,所以为es创建一个docker的网络
docker network create es-net
2. 拉取镜像,这里以7.6.2举例,7.x版本有中文汉化支持,后面会讲解如何汉化:
docker pull elasticsearch:7.6.2
# kibana拉取镜像比较慢,可以找下163的镜像地址
docker pull kibana:7.6.2
3. 部署es
docker run -d \
--name es \
-e "ES_JAVA_OPTS=-Xms256m -Xmx512m" \
-e "discovery.type=single-node" \
-v /xxx/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /xxx/elasticsearch/data:/usr/share/elasticsearch/data \
-v /xxx/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
--privileged \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
elasticsearch:7.6.2
命令解释:
- -e “http.host=0.0.0.0”:外网访问
- -e “ES_JAVA_OPTS=-Xms256m -Xmx512m”:内存大小
- -e “discovery.type=single-node”:非集群模式
- -v /xxx/elasticsearch/data:/usr/share/elasticsearch/data:挂载es的数据目录
- -v /xxx/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml :挂载es的配置文件
- -v /xxx/elasticsearch/logs:/usr/share/elasticsearch/logs:挂载es的日志目录
- -v /xxx/elasticsearch/plugins:/usr/share/elasticsearch/plugins:挂载es的插件目录
- –privileged:授予逻辑卷访问权
- –network es-net :加入上文创建的es-net网络中
- -p 9200:9200:端口映射
4. 部署kibana
docker run -d \
--name kibana \
-e ELASTICSEARCH_HOSTS=http://es:9200 \
--network=es-net \
-p 5601:5601 \
kibana:7.6.2
- -e ELASTICSEARCH_HOSTS=http://es:9200":设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch
- –network es-net :加入一个名为es-net的网络中,与elasticsearch在同一个网络中
- -p 5601:5601:端口映射
5. 打开kibana访问
浏览器访问:http://localhost:5601/,即可进入可视化管理页面。
关于汉化kibana:
# docker镜像
docker exec -it kibana bash
# 查看kibana的配置文件
vi config/kibana.yml
# 在配置文件里加入配置
i18n.locale: "zh-CN"
保存修改后重启容器即可