Manjaro下Docker部署ES踩坑

date
May 9, 2022
slug
Manjaro下Docker部署ES踩坑
status
Published
tags
Linux
summary
Manjaro下Docker部署ES踩坑
type
Post
  1. docker pull 下es镜像
  1. 创建一个网络,方便后续容器间服务通信
docker network create esnetwork
  1. 以单节点运行ES
docker run -d --name elasticsearch --net esnetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" elasticsearch:tag
  1. 看下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
再启动下容器
  1. 开放9200,9300端口
我用的是Arch Linux,可以用ufw或者gufw,添加下规则
pamac install ufw
# 或者
pamac install gufw
  1. 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的一个安全配置要关一下
  1. 进入容器
docker exec -it <容器ID> /bin/bash
  1. 修改配置
cd /usr/share/elasticsearch/config
vi elasticsearch.yml
这个由true改为false
notion image
  1. 保存变更,退出容器,重启下容器
exit
docker restart <容器ID>
curl再试下,这下应该没问题了

© 李工 2021 - 2025