无法启动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
查看容器是否从其运行。
答
使用容器作为启动主机服务的一种方式似乎让我忽略了容器的要点。 “集装箱化”的应用程序应该可以随时启动/停止。如果您希望有一个长期运行的容器提供您希望始终运行的服务,那么将--restart=always
选项添加到您的docker run命令中。这样当主机启动/重启时,Docker服务启动后,你的容器也会自动启动。 do &关于集装箱化应用程序的一个不错的清单是The 12 Factor App
这就是我想说的:在'docker start'和'docker ps -a'后我的容器状态'退出'。我想用我自己的Dockerfile,因为我做某事。更多。上面的Dockerfile只是用于复制的最小片段。 – Munchkin
@Munchkin这意味着你的主命令立即启动并退出。尝试以https://github.com/toke/docker-mosquitto的方式配置您的映像。 – VonC
我只是看看回购。 “CMD [”/ usr/sbin/mosquitto“,”-c“,”/mqtt/config/mosquitto.conf“]是否将mosquitto作为服务启动,就像'service mosquitto start'服务一样? – Munchkin