Mosquitto代理不会在Raspberry重新启动时使用Docker重新启动

时间:2019-08-20 14:37:30

标签: docker mosquitto

我通过以下方式在Raspbian上用Docker安装了Mosquitto代理:

docker pull eclipse-mosquitto

docker run -d -p 1883:1883 -p 9001:9001 --name=mosquitto eclipse-mosquitto --restart=always

当我重新启动Raspberry时,该容器似乎没有运行,并且我无法连接到它。如果我再次尝试运行它,则会得到:

docker: Error response from daemon: Conflict. The container name 
"/mosquitto" is already in use by container 
"3187ab53a3a2067b9d6ce0sa647a8d90cb52485f5540ca4eacad1c4e662ffa9d". You have 
to remove (or rename) that container to be able to reuse that name.
See 'docker run --help'.

所以我需要将其删除

docker rm -f mosquitto

然后重新启动。

我想念什么?

1 个答案:

答案 0 :(得分:2)

Docker Engine防止两个容器具有相同的名称。

因此,如果您运行两次这样的命令:

docker run -d -p 1883:1883 -p 9001:9001 --name=mosquitto eclipse-mosquitto
docker stop mosquitto  # simulates your reboot
docker run -d -p 1883:1883 -p 9001:9001 --name=mosquitto eclipse-mosquitto

然后,第二次尝试将失败,如您所见。

实际上,我想您已将选项--restart=always放在错误的位置。 (更确切地说,在映像名称之后给出的参数不会被视为Docker CLI选项,它们会提供给入口点:docker run [OPTIONS] image-name [ARGUMENTS]

您可以尝试一下(然后重新启动)吗?

docker run -d -p 1883:1883 -p 9001:9001 --name=mosquitto --restart=always eclipse-mosquitto

否则,您也可以这样做:

docker start eclipse-mosquitto

docker stop或重启后无法成功重启容器的情况。