2017-03-09 80 views
0

我希望使用以下码头ivankrizsan/elastalert。我已经安装了elasticsearch 5的docker(名称:elasticsearch)Docker /如何确定链接?

在指南中,它说:需要使用“elasticsearchhost”别名链接到运行Elasticsearch的Docker容器。

所以我做了以下内容:

docker run --link "elasticsearch:elasticsearchhost" ivankrizsan/elastalert 

和它说:

docker: Error response from daemon: Conflicting options: host type networking can't be used with links. This would result in undefined behavior. 

当我删除该链接,只需要运行:

docker run ivankrizsan/elastalert 

它没有找到弹性搜索端口(其循环此部分:

while ! wget -O garbage_file ${ELASTICSEARCH_HOST}:${ELASTICSEARCH_PORT} 2>/dev/null 
do 
    echo "Waiting for Elasticsearch..." 
    rm -f garbage_file 
    sleep 1 
done 

我做错了什么?

+0

'elasticsearch'容器是如何启动的。根据错误消息它有'--network = host'选项? – Lauri

+0

@Lauri是的,净=主机 – MiddleWare

+0

任何特定的原因呢? – Lauri

回答

1

该错误表示您在创建elasticsearch容器时使用了--network = host。

我注意到的另一个问题是使用链接,链接容器是一项遗留功能,正在被用户定义的网络取代。用户定义的网络也将为您提供服务发现的内部DNS。

要解决问题,请先停止并删除elasticsearch容器。

您contianers创建一个用户定义的网络:

sudo docker network create elastic 

开始elasticsearch容器:

sudo docker run -d --name elasticsearchhost -p 9200:9200 -e "http.host=0.0.0.0" -e "transport.host=127.0.0.1" --network elastic docker.elastic.co/elasticsearch/elasticsearch:5.2.2 elasticsearch 

验证elasticsearch达:

curl -XGET 'http://localhost:9200/' 

如果启用xpack,您需要提供用户名和密码:

curl -u elastic:changeme -XGET 'http://localhost:9200/' 

弹性:默认的用户名

changeme:默认密码

为了解决Waiting for Elasticsearch...你需要elsatalert禁用安全插件,或设置用户名/密码。

要禁用elasticsearch安全认证添加以下行/usr/share/elasticsearch/config/elasticsearch.yml

xpack.security.enabled: false 

,并重新启动elasticsearch容器。

验证:

curl -XGET 'http://localhost:9200/' 

开始ivankrizsan/elastalert容器:

sudo docker run -d --name elastalert --network elastic -e ELASTICSEARCH_HOST=elasticsearchhost -e ELASTICSEARCH_PORT=9200 ivankrizsan/elastalert 

请通过-e开关注意环境变量。

+0

进出口仍然得到2017-03-09T09:09:30.371045670Z等待Elasticsearch。 .. – MiddleWare

+0

post'docker ps'和'docker ps -a' – user2915097

+0

@ user2915097:当我在做wget localhost:9200时,我得到--2017-03-09 10:15:32-- http:// localhost:9200/ 正在解析本地主机... 127.0.0.1 连接到本地主机| 127.0.0.1 |:9200 ...已连接。 发送HTTP请求,等待响应...没有收到数据。 正在重试。 – MiddleWare