AccessDeniedException
表明 Elasticsearch 容器无法访问或写入数据目录 /usr/share/elasticsearch/data/nodes
。这是一个权限问题。
问题原因:
1、宿主机目录权限不足:映射到容器的数据目录 /data/es/data 在宿主机上可能没有足够的权限供容器访问。
2、用户和组不匹配:Elasticsearch 容器默认以 elasticsearch 用户运行,UID 为 1000,GID 为 1000,但宿主机目录可能没有匹配的用户和组。
解决方法:
确保目录权限正确,在宿主机上为映射的数据目录赋予正确的权限。
执行如下命令
sudo chown -R 1000:1000 /data/es/data
sudo chmod -R 775 /data/es/data
这将确保目录的所有者和组为容器中的 elasticsearch
用户,并授予读写权限。