Mosquitto 代理不会在 Raspberry 重启时以 Docker 重启
Mosquitto broker won't restart with Docker on Raspberry reboot
我用 Docker 在 Raspbian 上安装了 Mosquitto 代理,方法如下:
docker pull eclipse-mosquitto
docker run -d -p 1883:1883 -p 9001:9001 --name=mosquitto eclipse-mosquitto --restart=always
当我重新启动 Raspberry 时,容器似乎没有 运行ning,我无法连接到它。如果我再次尝试 运行,我会得到:
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] image-name [ARGUMENTS]
)
你能试试这个(然后重启)吗?
docker run -d -p 1883:1883 -p 9001:9001 --name=mosquitto --restart=always eclipse-mosquitto
否则,你也可以这样做:
docker start eclipse-mosquitto
在 docker stop
或重新启动后无法成功重新启动容器。
我用 Docker 在 Raspbian 上安装了 Mosquitto 代理,方法如下:
docker pull eclipse-mosquitto
docker run -d -p 1883:1883 -p 9001:9001 --name=mosquitto eclipse-mosquitto --restart=always
当我重新启动 Raspberry 时,容器似乎没有 运行ning,我无法连接到它。如果我再次尝试 运行,我会得到:
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] image-name [ARGUMENTS]
)
你能试试这个(然后重启)吗?
docker run -d -p 1883:1883 -p 9001:9001 --name=mosquitto --restart=always eclipse-mosquitto
否则,你也可以这样做:
docker start eclipse-mosquitto
在 docker stop
或重新启动后无法成功重新启动容器。