Docker无法链接到非运行的容器 – 通过重启来修复
我有一个运行在Ubuntu上docker的ELK栈。 有时候,由于在我们的开发环境中预期会出现错误的查询或错误消息,elasticsearch容器将终止。
我们遇到的问题是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
我已经validation,ES容器确实回来了,我可以通过curl连接到ES,但logstash容器不会启动。
logstash容器configuration有以下链接:
/elasticsearch:/logstash/elasticsearch
Docker版本信息:
$ docker version Client: Version: 1.11.0 API version: 1.23 $docker --version Docker version 1.11.0, build 4dc5990
重新启动整个虚拟机解决了问题,并允许我正确地重新启动所有的容器,一切都很好,直到ES终止。
虽然不是世界末日,但我真的宁愿避免重新启动来解决这个问题。
有任何想法吗?
有时也会发生,上次是今天。 你可以通过运行来避免重启
sudo service docker restart
(或类似的命令,取决于你的操作系统)