Manjaro下Docker部署ES踩坑
date
May 9, 2022
slug
Manjaro下Docker部署ES踩坑
status
Published
tags
Linux
summary
Manjaro下Docker部署ES踩坑
type
Post
- docker pull 下es镜像
- 创建一个网络,方便后续容器间服务通信
docker network create esnetwork
- 以单节点运行ES
docker run -d --name elasticsearch --net esnetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag
- 看下ES容器有没有起来
docker ps
如果没有起来,docker log -f <容器ID>看下日志。
如果提示内存不够:
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
设置:
sudo sysctl -w vm.max_map_count=262144
再启动下容器
- 开放9200,9300端口
我用的是Arch Linux,可以用ufw或者gufw,添加下规则
pamac install ufw
# 或者
pamac install gufw
- curl 访问ES测试
正常会显示:
>curl http://192.168.200.129:9200
{
"name" : "744cdbeb308b",
"cluster_name" : "docker-cluster",
"cluster_uuid" : "yZoXxeqbSRidBlxiUEtF1w",
"version" : {
"number" : "8.2.0",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "b174af62e8dd9f4ac4d25875e9381ffe2b9282c5",
"build_date" : "2022-04-20T10:35:10.180408517Z",
"build_snapshot" : false,
"lucene_version" : "9.1.0",
"minimum_wire_compatibility_version" : "7.17.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "You Know, for Search"
}
如果提示这个,且docker ps 看ES容器正在运行
>curl http://192.168.200.129:9200
curl: (52) Empty reply from server
说明ES的一个安全配置要关一下
- 进入容器
docker exec -it <容器ID> /bin/bash
- 修改配置
cd /usr/share/elasticsearch/config
vi elasticsearch.yml
这个由true改为false
- 保存变更,退出容器,重启下容器
exit
docker restart <容器ID>
curl再试下,这下应该没问题了