莫斯奎托经纪人赢得';t在Raspberry重新启动时使用Docker重新启动

莫斯奎托经纪人赢得';t在Raspberry重新启动时使用Docker重新启动,docker,mosquitto,Docker,Mosquitto,我用Docker在Raspbian上安装了Mosquitto broker,方法如下: docker pull eclipse-mosquitto docker run -d -p 1883:1883 -p 9001:9001 --name=mosquitto eclipse-mosquitto --restart=always 当我重新启动Raspberry时,容器似乎没有运行,我无法连接到它。如果我再次尝试运行它,我会得到: docker: Error response from dae

我用Docker在Raspbian上安装了Mosquitto broker,方法如下:

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
然后重新启动它


我错过了什么?

Docker引擎阻止两个容器使用相同的名称

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

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]映像名称[arguments]

你能试试这个(然后重新启动)吗

否则,您也可以这样做:

docker start eclipse-mosquitto

docker停止
或无法成功重新启动容器的重新启动后。

docker引擎阻止两个容器具有相同的名称

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

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]映像名称[arguments]

你能试试这个(然后重新启动)吗

否则,您也可以这样做:

docker start eclipse-mosquitto
docker停止后
或重新启动无法成功重新启动容器后