2016-10-28 2 views
1

Ähnliche Fragen scheinen zu existieren, aber keine von ihnen mit klarer Antwort (zumindest nicht für mich). Ich habe einen LDAP-Server in einem Container, der mit bin/start-ds Datei kommt. Das Problem ist, dass der Container beendet wird, sobald das Shell-Skript beendet ist. Ich würde den Exit verstehen, wenn Skript einfach eine Nachricht druckt, aber in meinem Fall startet es einen Prozess. Und da ein Prozess läuft, würde ich erwarten, dass mein Container unbegrenzt läuft, wenn ich ihn im detach Modus starte. Aber das ist nicht der Fall und es endet sofort. Alle Hinweise würden wirklich geschätzt werden. Unten ist mein einfaches Dockerfile:Docker-Container wird sofort trotz laufendem Dienst beendet

FROM unboundid-base:0.2 
MAINTAINER helloworld 

CMD ["/home/unboundid/UnboundID-DS/bin/start-ds"] 
+0

Können Sie bitte Ihre Protokolle posten? – Techiee

Antwort

2

Es zwei Grund sein kann:

  1. Hinzufügen --nodetach

CMD ["/home/unboundid/UnboundID-DS/bin/start-ds", "--nodetach"]

  1. anderer Grund, warum Container verlassen sofort, nachdem Sie es laufen, Mangel an Ressourcen. Möglicherweise verfügen Sie über genügend Ressourcen, aber gleichzeitig werden mehrere Container ausgeführt, die Ihre Ressourcen verbrauchen. Oder Sie führen nur Ihren Container aus, aber wahrscheinlich benötigt dieser Container mehr Ressourcen, um ausgeführt zu werden, und Sie werden davon nicht profitieren. Erteilen Sie mehr Ressourcen, erhöhen Sie RAM und Arbeitsspeicher und versuchen Sie, den Container erneut auszuführen.

Hoffe, das hilft.

0

Ich führe alle UnboundID-Server-Produkte in Docker-Containern für Dev/Test/Troubleshooting. Meine Dockerfile CMD-Leitung ist:

CMD ${UBID_HOME}/bin/start-${UBID_PRODUCT};/bin/bash 

Solange Sie einen Vordergrundprozess laufen den Behälter verlassen wird nicht verlassen, und was besser Prozess als eine Schale zu verlassen um mit dem Server zu interagieren.

Verwandte Themen