当前位置: 首页 > news >正文

容器运行elasticsearch安装ik分词非root权限安装报错问题

有些应用默认不允许root用户运行,来确保应用的安全性,这也会导致我们使用docker run后一些操作问题,用es安装ik分词器举例(es版本8.9.0,analysis-ik版本8.9.0)

1. 容器启动elasticsearch

如挂载方式,我在本地es目录下创建子目录文件{plugins/data/logs/config}
创建完成后赋值777权限(chmod -R 777 xxx),运行启动正常

version: '3.2'
services:elasticsearch:image: elasticsearch:8.9.0volumes:- /etc/localtime:/etc/localtime- ./es/plugins:/usr/share/elasticsearch/plugins- ./es/data:/usr/share/elasticsearch/data- ./es/logs:/usr/share/elasticsearch/logs- ./es/config:/usr/share/elasticsearch/configports:- '9200:9200'- '9300:9300'container_name: esrestart: alwaysprivileged: trueenvironment:- 'discovery.type=single-node' #以单一节点模式启动- 'ES_JAVA_OPTS=-Xms1g -Xmx1g' #设置使用jvm内存大小networks:- elkkibana:image: kibana:8.9.0container_name: kibanarestart: alwaysvolumes:- /etc/localtime:/etc/localtime- ./kibana/config:/usr/share/kibana/config- ./kibana/data:/usr/share/kibana/dataports:- '5601:5601'links:- elasticsearch:es #可以用es这个域名访问elasticsearch服务environment:- ELASTICSEARCH_URL=http://elasticsearch:9200 #设置访问elasticsearch的地址- 'elasticsearch.hosts=http://es:9200' #设置访问elasticsearch的地址- I18N_LOCALE=zh-CNnetworks:- elkdepends_on:- elasticsearch
networks:elk:ipam:driver: default
2. 安装分词器analysis-ik

analysis-ik下载列表根据自己对应的es版本下载相同版本的ik,docker机器如无互联网权限可先下载本地复制容器内install
复制容器内:
docker cp elasticsearch-analysis-ik-8.9.0.zip es:/home
进入容器安装:

`[root@iZ3ic06r07y423aufi9oypZ elasticsearch]# docker exec -it es bash`elasticsearch@a0ff9699bfd6:~$ cd bin/
elasticsearch@a0ff9699bfd6:~/bin$ ./elasticsearch-plugin install file:///home/elasticsearch-analysis-ik-8.9.0.zip
-> Installing file:///home/elasticsearch-analysis-ik-8.9.0.zip
-> Downloading file:///home/elasticsearch-analysis-ik-8.9.0.zip
[=================================================] 100%??
-> Failed installing file:///home/elasticsearch-analysis-ik-8.9.0.zip
-> Rolling back file:///home/elasticsearch-analysis-ik-8.9.0.zip
-> Rolled back file:///home/elasticsearch-analysis-ik-8.9.0.zip
Exception in thread "main" java.nio.file.AccessDeniedException: /usr/share/elasticsearch/plugins/.installing-16427832938312211034at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)xxxxx.......

安装报错,发现原因为权限问题,exec进入后为1000用户,工作目录下除了bin其他都是root权限,
在这里插入图片描述
重新运行一个新的es对比看下效果,结果发现当没有挂载文件时其余文件都是以elasticsearch:root为权限的,已挂载的是根据宿主机的权限一致,问题很明显了,
在这里插入图片描述
容器内部不支持sudo命令 su - root也不知道root密码的情况下,宿主机新建useradd elasticsearch,对应挂载目录文件用户授权在安装正常运行,chown -R elasticsearch:root {plugins/data/logs/config}
在这里插入图片描述

http://www.lryc.cn/news/186432.html

相关文章:

  • UE4游戏客户端开发进阶学习指南
  • javaee SpringMVC 乱码问题解决
  • 用ChatGPT做数据分析,提升10倍工作效率
  • 【Pytorch笔记】4.梯度计算
  • 浏览器安装vue调试工具
  • C/C++学习 -- RSA算法
  • 基于若依ruoyi-nbcio支持flowable流程增加自定义业务表单(一)
  • 面试经典 150 题 1 —(数组 / 字符串)— 88. 合并两个有序数组
  • 【大数据 | 综合实践】大数据技术基础综合项目 - 基于GitHub API的数据采集与分析平台
  • 超高频RFID模具精细化生产管理方案
  • FP-Growth算法全解析:理论基础与实战指导
  • Jmeter 分布式压测,你的系统能否承受高负载?
  • 什么是浮动密封?
  • 浅析前端单元测试
  • 线上mysql表字段加不了Fail to get MDL on replica during DDL synchronize,排查记录
  • vue3使用element plus的时候组件显示的是英文
  • Matlab参数估计与假设检验(举例解释)
  • qt响应全局热键
  • android 代码设置静态Ip地址的方法
  • Elasticsearch安装访问
  • 面试题-React(十):setState为什么使用异步机制?
  • 入侵防御系统(IPS)网络安全设备介绍
  • 【Linux基础】Linux的基本指令使用(超详细解析,小白必看系列)
  • 【无标题】Test
  • 1576. 替换所有的问号
  • MySQL学习笔记(快速入门)
  • 使用DNS查询Web服务器IP地址
  • docker虚拟网桥和业务网段冲突处理
  • axios登录,登出接口的简单封装步骤详解!
  • 九大装修收纳空间的设计,收藏备用!福州中宅装饰,福州装修