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?