version: '2'
services:
elasticsearch:
container_name: elasticsearch
image: daocloud.io/library/elasticsearch:6.5.4
ports:
- "9200:9200"
environment:
# 下面这句设置设置初始化内存为64m,最大内存为128m,
#es默认的内存1G(好像是)如果做实验或者是在虚拟机上,
#没必要给这么多,如果虚拟机内存不够,会报错。
- "ES_JAVA_OPTS=-Xms64m -Xmx128m"
# 单机模式,非集群
- "discovery.type=single-node"
- # 环境变量名称
- "COMPOSE_PROJECT_NAME=elasticsearch-server"
restart: always
kibana:
container_name: kibana
image: daocloud.io/library/kibana:6.5.4
ports:
- "5601:5601"
restart: always
environment:
- ELASTICSEARCH_HOSTS=你的ip地址:9200
说明:
最近在学习es,网上关于很多es的docker安装都出现了问题,尤其是内存不够导致的es启动失败。
确保安装了jdk1.8以上或者openjdk-11-jdk(我的环境)
安装openjdk
apt-get install openjdk-11-jdk
摸索了很久后,解决了常见问题后,将该脚本配置完善。该镜像是从daocloud.io镜像站上拉取的速度更快。
es和kibana版本为6.5.4,便于学习,可以改成其他版本。
运行
将这个脚本复制到:docker-compose.yml(在空文件夹中创建)中
在当前文件夹下,运行docker-compose.yml up -d等待一段事件,让其下载运行。
在浏览器中使用 你的ip地址+9200来访问es,返回与下面类似的json数据则启动成功,当然kibana只需访问5601端口出现界面即可。
{
"name" : "Lgx6cCm",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "45S0sg7EQ8K_QrOjXaBYIQ",
"version" : {
"number" : "6.5.4",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "d2ef93d",
"build_date" : "2018-12-17T21:17:40.758843Z",
"build_snapshot" : false,
"lucene_version" : "7.5.0",
"minimum_wire_compatibility_version" : "5.6.0",
"minimum_index_compatibility_version" : "5.0.0"
},
"tagline" : "You Know, for Search"
}