1.创建挂载目录文件夹,并赋权限
mkdir -p /opt/docker_compose_data/elasticsearch/config
mkdir -p /opt/docker_compose_data/elasticsearch/data
echo "http.host: 0.0.0.0" >> /opt/docker_compose_data/elasticsearch/config/elasticsearch.yml
#赋权
chmod 777 /opt/docker_compose_data/elasticsearch/config
chmod 777 /opt/docker_compose_data/elasticsearch/data
chmod 777 /opt/docker_compose_data/elasticsearch
2.编写docker-compose.yaml文件并启动
(这里是7.4.2版本,也可以按需修改相关版本)
version: "3.1"
services:
elasticsearch:
image: elasticsearch:7.4.2
restart: always
container_name: elasticsearch
environment:
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
volumes:
- /opt/docker_compose_data/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- /opt/docker_compose_data/elasticsearch/data:/usr/share/elasticsearch/data
- /opt/docker_compose_data/elasticsearch/plugins:/usr/share/elasticsearch/plugins
ports:
- 9200:9200
- 9300:9300
kibana:
image: kibana:7.4.2
restart: always
container_name: kibana
ports:
- 5601:5601
environment:
- elasticsearch_url=http://192.168.187.101:9200
depends_on:
- elasticsearch
启动常见问题
解决方法:修改内存配置
vi /etc/sysctl.conf
#添加,后:wq 保存并退出
vm.max_map_count=262144
#立即生效
sysctl -p
解决办法:这个按上述操作不会出现这个问题,主要是文件权限不够,再chmod 777 即可
解决办法:在这个/opt/docker_compose_data/elasticsearch/config/elasticsearch.yml文件下写入
cluster.initial_master_nodes: ["node-1"]
如果访问kibana报错Kibana server is not ready yet
并且访问ip+端口//_cat/nodes?pretty报错
{
"error": {
"root_cause": [{
"type": "master_not_discovered_exception",
"reason": null
}],
"type": "master_not_discovered_exception",
"reason": null
},
"status": 503
}
解决方法:修改el的yml文件
network.host: 0.0.0.0
cluster.initial_master_nodes: ["node-1"]
node.name: node-1
#设置当前节点与其他节点交互的IP地址(替换自己的ip)
network.publish_host: 192.168.187.101
3.安装分词器
下载IK分词器的地址:
ik分词器7.4.2
cd /opt/docker_compose_data/elasticsearch/plugins
mkdir ik
cd ik
#把压缩包拉进来然后解压
unzip elasticsearch-analysis-ik-7.4.2.zip
#如果没有unzip安装即可(可以解压忽略)
yum install -y unzip zip
#删除原压缩包
rm -rf *.zip
#操作完毕,重启容器
cd /opt/docker_compose/elasticsearch
docker-compose restart
4.正常访问
ip:9200
ip:5601