我通过在这里find的dockerfile启动elasticsearch:
https://index.docker.io/u/ehazlett/elasticsearch/
它工作很好。 我需要定义自己的主机,因为我的环境不支持任何种类的多播。
我明白我的select是:
1)当elasticsearch作为命令行参数运行时提供主机
2)修改我的elasticsearch.yml文件来设置主机。
我知道如何构buildyml,我需要知道的是如何通过docker使用我自己的yml而不是容器中的yml来启动elasticsearch。 那可能吗?
谢谢。
您可以使用“-Des.config”参数指定elasticsearch.yml。
例如:
elasticsearch -Des.config=/path/to/elasticsearch.yml
或者在你的Dockerfile中:
CMD ["/usr/share/elasticsearch/bin/elasticsearch", "-Des.config=/path/to/elasticsearch.yml"]
在其他添加您自己的弹性searchconfiguration到您的容器,您可以select创build一个自定义图像。
创build自定义图像非常简单,如果您熟悉Dockerfile,则只需执行以下操作:
FROM base/elasticsearchimage ADD elasticsearch.yml /path/to/conf/elasticsearch.yml CMD ["/usr/share/elasticsearch/bin/elasticsearch", "-Des.config=/path/to/conf/elasticsearch.yml"]
将Dockerfile和elasticsearch.yml放在同一个文件夹中,然后运行以下命令:
在Linux上:
sudo docker build -t username/elasticsearch.
Windows(通过boot2docker):
docker build -t username/elasticsearch .
成功构build后,请执行以下操作:
docker run -d --name containername username/elasticsearch
有了这个,你可以使configuration始终可用于新的容器,从而减less了创build集群的工作量。