为什么是 ElasticSearch 不允许以 root 身份运行



我在Docker容器中部署ElasticSearch,该容器通常以root用户身份运行进程。我得到

"org.elasticsearch.bootstrap.StartupError: java.lang.RuntimeException: cannot run elasticsearch as root"

尝试启动 ElasticSearch 时出错。

ElasticSearch 不能以根用户身份运行的原因是什么?

在 docker 容器内部,事情是隔离的,根进程被认为是安全的。我也许可以将我的映像配置为以非 root 身份运行,但它需要大量繁重的工作,并且与我们的部署模型相反。

我也尝试过没有码头工人容器,但出现以下错误。

./elasticsearch

Exception in thread "main" java.lang.RuntimeException: don't run elasticsearch as root.at

org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:93) at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:144) at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:270) at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:35)

有关完整的错误详细信息,请参阅日志。

这已经讨论过几次了。引用 Elastic 维护的 Docker 镜像:

Elasticsearch的检查不允许以root身份运行它。这 已在 中讨论过 https://discuss.elastic.co/t/why-is-it-elasticsearch-is-not-allowed-to-run-as-root/60413/2 在 docker 容器中以 root 身份运行进程不是最好的 实践。你可以在前面提到的讨论中看到一些原因, 在 https://forums.docker.com/t/root-user-or-non-root-user-inside-container/966/10, http://blog.dscpl.com.au/2015/12/don-run-as-root-inside-of-docker.html 等地。容器的风险尤其严重 像Elasticsearch,用户经常绑定挂载主机目录 具有写入权限。

PS:如果您不想构建自己的映像,则有官方维护的映像: https://www.docker.elastic.co

相关内容

  • 没有找到相关文章

最新更新