docker容器在运行后立即退出[mosquitto损坏的容器]

时间:2019-04-05 14:51:37

标签: linux docker debian containers mosquitto

你好,我在使用docker时遇到问题,最近我制作了dockerfile来创建“ mosquitto-mqtt”的映像,以使用ssl保护制作自己的损坏的mqtt。我构建dockerfile一切都很好,但是我没有问题,但是如果我运行带有“ docker run -itd --name broken ce69ee4b2f4e”的新容器,则容器会自动运行并退出,如果检查日志一切正常,[[ ok。]启动网络守护程序:: mosquitto。”。我没有为什么?检查我的dockerfile。我需要帮助解决它,谢谢您

{
    "someOtherParam":"someValue",
    "attributes":
    {
        "language":"fr en",
        "otherParam":"value1 value2"
    }
}

日志打印

#Download base image debian
FROM debian:latest

#Update system
RUN apt-get update -y

#Install Wget and gnup2
RUN apt-get install wget -y && apt-get install gnupg2 -y

#Download and add key
RUN wget http://repo.mosquitto.org/debian/mosquitto-repo.gpg.key
RUN apt-key add mosquitto-repo.gpg.key
RUN rm mosquitto-repo.gpg.key

## append apt mirror for debian
RUN echo "# mirror" >> /etc/apt/source.list
RUN echo "deb http://repo.mosquitto.org/debian stretch main" >> /etc/apt/source.list

#Update and upgrade system
RUN apt-get update -y && apt-get upgrade -y

#install mosquitto
RUN apt-get install mosquitto -y

#Copy file configuration
COPY mosquitto.conf /etc/mosquitto

#Copy certificate folder
COPY certs/mosquitto-ca.crt /etc/mosquitto/certs
COPY certs/mosquitto-server.crt /etc/mosquitto/certs
COPY certs/mosquitto-server.key /etc/mosquitto/certs

#Run command
ENTRYPOINT ["/etc/init.d/mosquitto", "start"]

docker ps -a

[ ok .] Starting network daemon:: mosquitto.

2 个答案:

答案 0 :(得分:1)

容器是一个进程的包装,当该进程退出时,容器退出。在这种情况下:

ENTRYPOINT ["/etc/init.d/mosquitto", "start"]

该过程为/etc/init.d/mosquitto,几乎可以运行,在后台生成守护程序,然后退出(init.d中所有内容的标准设置)。如果可用,您应该直接使用前景选项运行蚊子。

如果可能的话,像supervisor这样的东西将不是最佳的后备,并且具有观看后台守护程序的能力。

如果这些都不起作用,则可以从以tail -f /dev/null结尾的脚本中运行命令,但这是最糟糕的选择,因为您会忽略任何错误。

答案 1 :(得分:0)

有效!我找到了解决方案,只需要在命令中添加“ -C”并指定目录

这是一个好方法

ENTRYPOINT ["mosquitto", "-c", "/etc/mosquitto/mosquitto.conf"]

谢谢大家的帮助!