Docker 部署 ElasticSearch

背景:基于阿里云服务器,在 Docker 容器中部署 ElasticSearch

1.拉取镜像

docker pull elasticsearch:6.6.0

2.准备配置文件

① 在指定路径下创建配置文件并编辑

vi /usr/local/elk/es/elasticsearch.yml

② 配置文件内容

cluster.name: es-log
http.cors.enabled: true
http.cors.allow-origin: "*"
node.name: master
node.master: true
network.host: 0.0.0.0

说明:

cluster.name:自定义集群名称。
network.host:当前es节点绑定的ip地址,默认127.0.0.1,如果需要开放对外访问这个属性必须设置。
http.cors.enabled:是否支持跨域,默认为false。
http.cors.allow-origin:当设置允许跨域,默认为*,表示支持所有域名,如果我们只是允许某些网站能访问,那么可以使用正则表达式。

3.启动镜像,挂载配置文件及数据

docker run -d -p 9200:9200 -p 9300:9300 -e ES_JAVA_OPTS="-Xms64m -Xmx512m" \
-v /usr/local/elk/es/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /usr/local/elk/es/data/:/usr/share/elasticsearch/data \
--name es elasticsearch:6.6.0

说明:

9300是集群节点指点的tcp通讯端口,9200是http协议的web客户端RESTful端口
ES_JAVA_OPTS:1G的云服务器不足以支持ES,为避免内存不足,在启动的时候,通过设置 ES_JAVA_OPTS 调整内存的分配;
discovery.type=single-node 表示,如果你正在使用单个节点开发,那就要添加这句话避开引导检查

------------------------------------------------- 分割 ------------------------------------------------------------------------------------

问题1:caused: not a directory: unknown: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type.
解决:关于配置文件,本机创建好通过xftp拉到服务器,文件变成了文件夹,且yml格式文件,须严格遵守格式

问题2:Caused by: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes
解决:es容器的data目录挂载到宿主机的/usr/local/elk/es/data下,宿主机的data需要开启对应的权限
chmod 777 /usr/local/elk/es/data

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值