我在Ubuntu上的docker上运行了一个ELK堆栈。有时,弹性搜索容器将由于错误的查询或错误消息而终止,这是我们开发环境中的预期行为。
我们遇到的问题是,在ES容器终止后,由于以下错误,无法重新启动Logstash容器:
Cannot link to a non running container: /elasticsearch AS /logstash/elasticsearch
完整的命令列表是:
$ sudo docker stop logstash
$ sudo docker start elasticsearch
$ sudo docker start logstash
Cannot link to a non running container: /elasticsearch AS /logstash/elasticsearch
我已经确认ES容器确实已经恢复,我可以通过curl连接到ES,但logstash容器无法启动。
使用以下链接配置logstash容器:
/elasticsearch:/logstash/elasticsearch
Docker版本信息:
$ docker version
Client:
Version: 1.11.0
API version: 1.23
$docker --version
Docker version 1.11.0, build 4dc5990
重新启动整个VM可以解决问题并允许我正确地重新启动所有容器,一切都很好,直到ES再次终止。
虽然不是世界末日,但我宁愿避免重启以解决此问题。
有什么想法吗?
答案 0 :(得分:26)
有时也会发生这种情况,上次是今天。您只需运行
即可避免重启 sudo service docker restart
(或类似命令,具体取决于您的操作系统)