【发布时间】:2023-03-15 20:35:02
【问题描述】:
我想通过 docker-compose.yml 使用官方的Elasticsearch docker image 官方文档建议:
我的简化 docker-compose.yml 如下所示:
version: '2'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:5.5.2
environment:
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ports:
- 9200:9200
默认情况下,运行docker-compose up 后,我使用默认密码changeme 创建了用户elastic。正如documentation 建议的那样,我可以通过调用来更改用户密码:
curl -XPUT -u elastic 'localhost:9200/_xpack/security/user/elastic/_password' -H "Content-Type: application/json" -d '{
"password" : "elasticpassword"
}'
但这在运行 Docker 映像时需要额外的步骤。
有没有办法在docker-compose up 命令期间配置默认的elastic 用户密码?也许通过环境变量以某种方式或通过elasticsearch.yml 配置文件?
我可以在 docker.elastic.co/elasticsearch/elasticsearch:5.5.2 图像和 RUN curl ... 命令之上创建自己的图像作为包装器,作为相关 Dockerfile 的一部分,但创建自己的 Elasticsearch 图像版本对我来说似乎是开销配置elastic用户密码...
【问题讨论】:
-
如果你只使用 image: docker.elastic.co/elasticsearch/elasticsearch:5.5.2 用户名/密码安全将不起作用。您将需要一个安装了 X-pack/Shield 的 docker 映像作为插件,这可以使用 dockerfile 完成。但是请注意,除非您在 X-Pack 插件中添加许可证密钥,否则它不会启动。如果您使用任何 Web 服务器,如 nginx 或 Traefik,它们可以扩展为使用基本身份验证。这会是更好的选择吗?
标签: elasticsearch docker docker-compose elasticsearch-x-pack