使用我自己的elasticsearch.yml启动elasticsearch dockerfile

我通过在这里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集群的工作量。