Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Virtualisierung mit Docker

Container starten und stoppen

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Container befinden sich nicht durchgehend im laufenden Zustand, sondern können innerhalb ihres Lebenszyklus diesen Zustand mehrfach durchlaufen. Lassen Sie sich zeigen, wie Sie dies in Docker steuern.

Transkript

Neben dem simplen Erstellen von Containern und unmittelbaren Durchstarten möchte man natürlich im Conteiner-Leneszyklus auch die Möglichkeiten der Kontrolle darüber haben, ob ein Container aktuell läuft, nicht mehr läuft oder gegebenenfalls nur kurzzeitig nicht läuft. Die Befehle, die für diese Vorgänge hilfreich sind, möchte ich Ihnen nun vorstellen. Beginnen wir mit dem Befehl docker ps. Ähnlich wie der ps-Befehl auf Linux zeigt er die laufenden Container auf dem System. Der Unterschied ist allerdings, er zeigt nicht die laufenden Prozesse per se, sondern lediglich die Container-Einheiten. Zusätzlich gibt es hierfür den Befehl docker top, der ähnlich dem top- Befehl unter Linux ist, und der zeigt die tatsächlich laufenden Prozesse in den Containern. Wenn ich mich also nun auf meiner Instanz befinde und den Befehl docker ps eingebe, empfehlt es sich ähnlich wie dem ps-Befehl auf Linux dem Parameter -a hinzuzufügen. An der Stelle sieht man nun, es gibt einen Container mit einem jeweiligen id, der auf einem bestimmten Image basiert. An der Stelle sieht man verkürzt die Kommandozeile, die ausgeführt wurde, als der Container gestartet wurde, die Zeit, die seitdem vergangen ist, ob es sich aktuell in einem Zustand befindet, dass er läuft oder nicht läuft und die jeweiligen Netzwerkports, die nach außen getragen werden, jeweils mit dem Port intern innerhalb der Maschine und dem Port außerhalb auf dem Docker-Host. Der letzte Reiter ist der so genannte Containername. In dem Fall wurde dieser Name automatisch generiert. Benutze ich nun den Befehl docker top, werde ich zunächst aufgefordert einen entsprechenden Container zu spezifizieren. Beispielsweise den eben genannten Container und prompt hat man eine Prozessansicht über die Prozesse, die in diesem Container tatsächlich taufen. Das Interessante hier ist, dass man ein direktes Mapping zwischen Prozessnummern auf dem Hostsystem und dem jeweiligen Container hat. Wenn man lediglich auf dem Hostsystem den ps aux-Befehl verwendet, so hat man zwar auch die Prozessnummern, allerdings kann man den Prozess nicht zwangsläufig den Containern zuordnen. Der nächste interessante Befehl, ist der Befehl docker start. Mit diesem ist es möglich einen gestoppten Container in einem laufenden Zustand zu versetzen. Anders als der Befehl docker run startet dieser Befehl nicht an Image in einem Container, sondern lediglich einen bereits bestehenden Container. Ein weiteres interessantes Konzept ist der Befehl docker create. Er funktioniert fast genauso wie der Befehl docker run, allerdings versetzt er den gespawnten Container nicht automatisch in einem laufenden Zustand. Das bedeutet, es ist möglich eine Kombination aus dem Befehl docker create und docker start zu machen zu einem unterschiedlichen Zeitpunkt. Wenn ich also nun den docker start-Befehl verwende um einen Container wieder in den laufenden Zustand zu versetzen, kann ich beispielsweise auch mich an die STDIN, STDOUT oder auch an den STDERR hängen. Mit dem Befehl -a würde ich mich an STDOUT und STDERR hängen. Sollte ich interaktiven Zugriff wünschen, würde ich -i spezifizieren. An der Stelle sieht man, sobald der Container gestarter wird, wird die Oracle-Datenbank hochgefahren und meldet an die Kommandozeile zurück. Wenn ich also nun den Befehl docker-create verwende um beispielsweise das Image in einen Container zu verwandeln, wird zuerst der Container erstellt, allerdings nicht unmittelbar hochgefahren. Das bedeutet, wenn ich nun docker ps -a aufrufe, sehe ich, dass ein neuer Container erstellt wurde vor 6 Sekunden. Diesen könnte ich nun respektive auch mit docker start-Befehl in einem laufenden Zustand versetzen. Die letzten wichtigen Befehle sind die, die mit dem Ende des Lebenszyklus eines Containers zu tun haben. Das wäre zunächst einmal docker stop, dass einen Container in einen gestoppten Zustand versetzt. Docker stop setzt dabei auf ein Konzept des regulären Beendens. Das bedeutet alle Anwendungen innerhalb des Containers werden aufgefordert sich dementsprechend herunterzufahren. Wenn das nach einem gewissen Zeitraum nicht passiert, werden diese durch docker stop terminiert. Mit dem Befehl docker pause/unpause ist es möglich einen Container einzufrieren. Das unterscheidet sich insofern von dem Konzept des docker stop-Befehls, als das die Anwendung per se nicht beenden will, sondern lediglich keine CPU mehr in Anspruch nehmen kann. Das bedeutet in diesem Fall, bleibt der Arbeitsspeicher als solches erhalten. De letzte wichtige Befehl in diesem Zusammenhang ist der Befehl docker kill. Dieser terminiert den Container im Gegensatz zu stop sofort. Das heißt, es wird nicht gewartet, ob der Container sich dann von selbst beenden kann. Ich suche mir nun also einen laufenden Container, wähle dessen Container-id und verwende zuerst den docker pause-Befehl. Dementsprechend wurde dieser Container nun eingefroren. Das sieht man an der Stelle am Status Paused. Um den Container wieder aufzuwecken, verwende ich den unpause-Befehl. Zu guter Letzt demonstriere ich noch den docker kill-Befehl. Denn der docker stop-Befehl ist ähnlich wie docker start und muss nicht weiter gezeigt werden. Docker kill hat relativ schnell terminiert. Das bedeutet, die Instanz wurde sofort beendet. Sie haben nun also gesehen, wie Sie den Zustand einen Containers, ob laufend oder beendet, mit verschiedenen Befehlen, die Docker Ihnen anbietet, beeinflussen können.

Virtualisierung mit Docker

Steigen Sie in die Container-Virtualisierung ein und entdecken Sie einfaches Prototyping neuer und unkomplizierte Skalierung bestehender Anwendungen.

3 Std. 36 min (36 Videos)
Derzeit sind keine Feedbacks vorhanden...
 

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!