无法启动mosquitto作为服务于泊坞窗容器

问题描述:

我从Dockerfile创建的图像:无法启动mosquitto作为服务于泊坞窗容器

FROM debian:latest 

RUN apt-get update && apt-get install -y \ 
mosquitto \ 
&& rm -rf /var/lib/apt/lists/* 

# mosquitto setup 
EXPOSE 1883 
COPY config/broker/conf.d/ /etc/mosquitto/conf.d/ 
CMD mosquitto 

这工作,但我想开始mosquitto作为一种服务(是建议呢?)。但是,当我更换

CMD service mosquitto start 

最后一行的服务没有启动&我的容器没有运行(但我没有得到的图像创建过程中的错误消息)

的服务没有启动&我的容器没有运行

入住泊坞窗PS -a,看是否有容器刚刚退出:你的容器来运行,你需要确保其主要工艺停留在前台并做不立即退出。

尝试使用docker图像toke/docker-mosquitto查看容器是否从其运行。

+0

这就是我想说的:在'docker start'和'docker ps -a'后我的容器状态'退出'。我想用我自己的Dockerfile,因为我做某事。更多。上面的Dockerfile只是用于复制的最小片段。 – Munchkin

+0

@Munchkin这意味着你的主命令立即启动并退出。尝试以https://github.com/toke/docker-mosquitto的方式配置您的映像。 – VonC

+0

我只是看看回购。 “CMD [”/ usr/sbin/mosquitto“,”-c“,”/mqtt/config/mosquitto.conf“]是否将mosquitto作为服务启动,就像'service mosquitto start'服务一样? – Munchkin

使用容器作为启动主机服务的一种方式似乎让我忽略了容器的要点。 “集装箱化”的应用程序应该可以随时启动/停止。如果您希望有一个长期运行的容器提供您希望始终运行的服务,那么将--restart=always选项添加到您的docker run命令中。这样当主机启动/重启时,Docker服务启动后,你的容器也会自动启动。 do &关于集装箱化应用程序的一个不错的清单是The 12 Factor App