Warum kann ich Docker CMD nicht mehrmals verwenden, um mehrere Dienste auszuführen?

Ich habe ein Basisimage von Dockerfile mit dem Namen centos + ssh erstellt. In der Docker-Datei von centos + ssh verwende ich CMD, um den ssh-Dienst auszuführen.

Dann möchte ich einen Image-Run eines anderen Dienstes namens rabbitmq, der Dockerfile, erstellen:

FROM centos+ssh
EXPOSE 22
EXPOSE 4149
CMD /opt/mq/sbin/rabbitmq-server start

So starten Sie den rabbitmq-Container:

docker run -d -p 222:22 -p 4149:4149 rabbitmq

Aber der SSH-Dienst funktioniert nicht. Er erkennt, dass die Dockerfile-CMD von Rabbitmq die CMD von Centos überschreibt.

Wie funktioniert CMD im Docker-Image?Wie gehe ich vor, wenn ich mehrere Dienste ausführen möchte? Supervisor verwenden?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage