需要让es和kibana容器互联,创建一个网络:
docker network create es-net加载镜像
elasticsearch镜像体积很大,接近1G,直接pull速度较慢。可以去我的网盘下载镜像:点击直接下载elasticsearch
运行docker命令,部署单点es:
docker run -d
--name es
-e "ES_JAVA_OPTS=-Xms512m -Xmx512m"
-e "discovery.type=single-node"
-v /root/docker/es/es-data:/usr/share/elasticsearch/data
-v /root/docker/es/es-plugins:/usr/share/elasticsearch/plugins
--privileged
--network es-net
-p 9200:9200
-p 9300:9300
elasticsearch:7.12.1
命令解释:
- -e “cluster.name=es-docker-cluster”:设置集群名称
- -e “http.host=0.0.0.0”:监听的地址,可以外网访问
- -e “ES_JAVA_OPTS=-Xms512m -Xmx512m”:内存大小
- -e “discovery.type=single-node”:非集群模式
- -v /root/docker/es/es-data:/usr/share/elasticsearch/data:挂载逻辑卷,绑定es的数据目录
- -v /root/docker/es/es-logs:/usr/share/elasticsearch/logs:挂载逻辑卷,绑定es的日志目录
- -v /root/docker/es/es-plugins:/usr/share/elasticsearch/plugins:挂载逻辑卷,绑定es的插件目录
- –privileged:授予逻辑卷访问权
- –network es-net :加入一个名为es-net的网络中
- -p 9200:9200:端口映射配置
在浏览器中输入:http://192.168.252.130:9200 即可看到elasticsearch的响应结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KQ3Ddyp8-1631425113605)(/images/pasted-6.png)]
部署kibana注意:如果访问后,容器报错停止,则需要data目录权限不够,用chmod 777 /root/docker/es/es-data 授权即可
运行docker命令,部署kibana(我的网盘也提供了下载连接:点击直接下载)
docker run -d --name kibana -e ELASTICSEARCH_HOSTS=http://es:9200 --network=es-net -p 5601:5601 kibana:7.12.1
- –network es-net :加入一个名为es-net的网络中,与elasticsearch在同一个网络中
- -e ELASTICSEARCH_HOSTS=http://es:9200 ":设置elasticsearch的地址,因为kibana已经与elasticsearch在一个网络,因此可以用容器名直接访问elasticsearch
- -p 5601:5601:端口映射配置
kibana启动一般比较慢,需要多等待一会,可以通过命令:
docker logs -f kibana
查看运行日志
此时,在浏览器输入地址访问:http://192.168.252.130:5601 ,即可看到结果
部署es集群部署es集群可以直接使用docker-compose来完成,要求你的Linux虚拟机至少有4G的内存空间
首先编写一个docker-compose文件,内容如下:
version: '2.2'
services:
es01:
image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1
container_name: es01
environment:
- node.name=es01
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es02,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data01:/usr/share/elasticsearch/data
ports:
- 9200:9200
networks:
- elastic
es02:
image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1
container_name: es02
environment:
- node.name=es02
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es03
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data02:/usr/share/elasticsearch/data
networks:
- elastic
es03:
image: docker.elastic.co/elasticsearch/elasticsearch:7.12.1
container_name: es03
environment:
- node.name=es03
- cluster.name=es-docker-cluster
- discovery.seed_hosts=es01,es02
- cluster.initial_master_nodes=es01,es02,es03
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- data03:/usr/share/elasticsearch/data
networks:
- elastic
volumes:
data01:
driver: local
data02:
driver: local
data03:
driver: local
networks:
elastic:
driver: bridge
Run docker-compose to bring up the cluster:
docker-compose up



