Docker无法链接到非运行容器 - 通过重新启动修复

时间:2016-05-24 12:33:42

标签: docker

我在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再次终止。

虽然不是世界末日,但我宁愿避免重启以解决此问题。

有什么想法吗?

1 个答案:

答案 0 :(得分:26)

有时也会发生这种情况,上次是今天。您只需运行

即可避免重启

sudo service docker restart

(或类似命令,具体取决于您的操作系统)