一、先设置系统参数 max_map_count
,否则 Elasticsearch 无法启动
/etc/sysctl.conf 文件添加vm.max_map_count=262144
执行更新命令
sysctl -p
二、创建共通网络,elasticsearch和kibana或者集群可以互相访问
docker network create es-net
三、docker拉取ES镜像
docker pull elasticsearch:7.8.0
四、docker拉取kibana镜像
docker pull kibana:7.8.0
五、创建映射容器的文件目录
# 用于挂载es插件目录和数据 创建01目录仅代表节点
mkdir -p -m 777 /mydata/es/01/plugins
mkdir -p -m 777 /mydata/es/01/data
mkdir -p -m 777 /mydata/es/01/logs
如果想创建多节点就继续映射目录02,03用于创建多个es容器节点
六、创建ES容器
docker run --name=es-01 \
--restart=always \
--privileged \
--net es-net \
-p 9200:9200 \
-p 9300:9300 \
-v /mydata/es/01/plugins:/usr/share/elasticsearch/plugins \
-v /mydata/es/01/data:/usr/share/elasticsearch/data \
-v /mydata/es/01/logs:/usr/share/elasticsearch/logs \
-e node.name=es-01 \
-e node.master=true \
-e network.host=es-01 \
-e discovery.seed_hosts=es-01 \
-e cluster.initial_master_nodes=es-01 \
-e cluster.name=es-cluster \
-e "ES_JAVA_OPTS=-Xms256m -Xmx256m" \
-d elasticsearch:7.8.0
如果想多个节点集群,那么一开始所有的ES容器创建就要进行设置
有几个就设置几个
-e discovery.seed_hosts=es-01,es-02,es-03,es-04 \
设置主节点
-e cluster.initial_master_nodes=es-01 \
别的属性按照自身设置即可 (基本不用改,修改下对应的容器名字即可)
七、ES测试
由于ES启动比较慢,可以查看运行日志
docker logs -f es-01
浏览器输入:http://docker所在服务器的ip:9200 出现以下信息即为成功:
八、创建kibana容器
docker run --name kibana \
-p 5601:5601 \
--restart=always \
--network=es-net \
-e ELASTICSEARCH_HOSTS=http://es-01:9200 \
-d kibana:7.8.0
-e ELASTICSEARCH_HOSTS=http://es-01:9200 \ 设置es的访问路径
九、kibana测试
由于kibana启动比较慢,可以查看运行日志
docker logs -f kibana
浏览器输入:http://docker所在服务器的ip:5601 出现以下信息即为成功