2016-11-01 10 views
0

Ich bin neu in Docker, daher kann ein einfaches Stück fehlen. Hier ist mein Szenario. Ich habe einen Container mit dem Befehl 'docker run -it ubuntu: 14.04' gestartet. Dann mit Strg + P + Q, verließ ich so, dass der Container weiter läuft. Ich habe mit Docker ps verifiziert und sah den Container laufen. Dann habe ich wieder den Container mit 'docker exec -it bash' betreten. Das brachte mich wieder in den Container. Jetzt gebe ich den Befehl 'exit' ein und ich komme aus dem Container, aber der Container befindet sich noch im laufenden Modus. Normalerweise stoppt der Container mit dem Befehl exit. Irgendeine Idee, warum das passiert?Docker Container zeigt läuft auch nach dem Beenden Befehl

Antwort

2

Der Ausführungsstatus des Containers ist an den ursprünglichen Prozess gebunden, für den er erstellt wurde.

Wenn Sie docker run tun, dann wird dies einen neuen Container mit einigen anfänglichen Prozess erstellen. Wenn dieser Prozess beendet wird, wird der gesamte Container gestoppt. Wenn dieser anfängliche Prozess bash war und Sie 10 es, dann beendet dies den Container selbst.

docker exec startet einen neuen Prozess innerhalb des laufenden Containers. Wenn dieser Prozess beendet wird, wird der Container weiterhin ausgeführt.

Eingabe 10 in eine interaktive bash Shell wird nur diese Shell verlassen. Andere Prozesse, die innerhalb desselben Containers ausgeführt werden, werden nicht beeinflusst (genauso wie das Schließen eines Terminalfensters in Ihrem Hostbetriebssystem keine anderen Prozesse beeinflusst).

+0

Danke für die Antwort –

0

Mit dem Befehl in Ihrem Fall stoppt der Container nur die ausführbare Datei /bin/bash/. Wahrscheinlich läuft eine andere Anwendung wie NGINX oder Apache innerhalb des Containers und lässt sie nicht herunterfahren.

Verwandte Themen