我从Dockerfile创建了一个图像:
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
服务无法启动&我的容器没有运行(但在创建图像时我没有收到错误消息)
答案 0 :(得分:0)
服务无法启动&我的容器没有运行
检查docker ps -a以查看容器是否刚刚退出:要使容器运行,您需要确保其主进程保持在前台并且不会立即退出。
尝试使用泊坞窗图像toke/docker-mosquitto
来查看从中运行的容器是否仍然存在。
答案 1 :(得分:0)
使用容器作为启动主机服务的方式在我看来似乎忽略了容器的重点。已经集装箱化的应用程序"应该可以随时启动/停止它们。如果您希望拥有一个长期运行的容器来提供您希望始终运行的服务,请将--restart=always
选项添加到docker run命令中。这样,当主机启动/重新启动,并且Docker服务启动时,您的容器也将自动启动。一个很好的名单& amp;关于容器化应用程序的问题是The 12 Factor App