‫OK, lass uns ein paar lustige Sachen machen. In dieser Vorlesung werden wir kurz auf den Unterschied
‫zwischen Bildern und Containern eingehen. Dann werden wir gleich anfangen, mit
‫einem Container herumzuspielen. Wir werden es
‫starten, anhalten und entfernen und einige allgemeine Verwaltungsfunktionen ausführen. Anschließend werden die Containerprotokolle und
‫die in unserem Container ausgeführten Prozesse überprüft.
‫Bevor wir also ganz schnell loslegen, ist es gut, den Unterschied zwischen einem Bild und einem Container zu kennen. Ein Image sind die Binärdateien und
‫Bibliotheken sowie der Quellcode, aus denen Ihre Anwendung besteht. Der Container ist eine laufende Instanz
‫dieses Images.
‫Jetzt können Sie viele Container haben, die alle auf demselben Image basieren. In dieser Vorlesung verwenden wir
‫den Open Source Nginx-Webserver. Also werden wir unsere
‫Container basierend auf diesem Nginx-Image starten. Wir erhalten alle unsere Bilder von Registern. Registries entsprechen in etwa
‫dem, was GitHub für den Quellcode bedeutet. Bildregistrierungen sind für Containerbilder und die Standardregistrierung für Docker ist Docker Hub, die Sie
‫am Hub auschecken können.
‫Docker. com.
‫Wir werden später mehr damit spielen.
‫Aber sei dir jetzt bewusst, dass diese beiden Dinge ziemlich unterschiedlich sind, und im nächsten Abschnitt werden
‫wir zu Bildern springen.
‫Aber jetzt konzentrieren wir uns auf Container.
‫OK, jetzt werden wir einen neuen Container starten und einige Docker-Befehle verwenden, um diesen Container zu verwalten.
‫Docker Container
‫Run veröffentlichen 80:80 Nginx.
‫Mach dir keine Sorgen, wenn du nicht weißt, was das alles bedeutet. Wir werden gleich alles durchgehen.
‫Ich drücke Enter ...
‫Wechseln Sie zu meinem Browser und geben Sie localhost ein.
‫Na, bitte.
‫Unser Nginx-Server hört zu. Ich kann mehrmals auf "Aktualisieren" klicken. Die Protokolleinträge werden
‫hier in unserer Befehlszeile angezeigt.
‫Was haben wir gerade gemacht? Im Hintergrund suchte
‫die Docker-Engine tatsächlich nach einem Image mit dem Namen nginx. Dabei wurde das neueste
‫Image für nginx von Docker Hub abgerufen. Dann begann es als neuer Prozess in einem neuen Container, den wir verwenden konnten.
‫Der veröffentlichte Teil des Befehls macht meinen lokalen Port 80 auf meinem lokalen Computer verfügbar und sendet den gesamten
‫Datenverkehr von ihm an die ausführbare Datei, die in diesem Container auf Port 80 ausgeführt wird.
‫Und da Nginx ein Webserver ist, wird standardmäßig Port 80 verwendet und der Datenverkehr wird automatisch über meinen
‫Browser an meinen lokalen Host und in diesen Container weitergeleitet.
‫Wir wollen aber nicht immer, dass dieses Ding in unserer Kommandozeile im Vordergrund läuft.
‫Drücken wir also die Strg-Taste c, und ich drücke den Aufwärtspfeil und mache einen kleinen Rückzieher und tippe die Ablösung
‫ein.
‫Jetzt sagt detach Docker, dass es im Hintergrund ausgeführt werden soll.
‫Und wir erhalten die eindeutige Container-ID unseres Containers zurück.
‫Und jedes Mal, wenn Sie einen neuen Container ausführen, erhalten Sie eine neue eindeutige ID.
‫Wenn wir also zu unserem Browser zurückkehren und mehrmals auf "Aktualisieren" klicken, können Sie feststellen, dass er noch ausgeführt wird.
‫Also lasst uns einen Befehl ausführen, um unsere Container aufzulisten. docker container ls Und Sie werden den
‫sehen,
‫der hier noch läuft.
‫Es stimmt mit der Container-ID des gerade ausgeführten Befehls überein. Sie werden sehen, dass der Container noch läuft, den wir
‫gerade gestartet haben.
‫Also lasst uns den Container ganz schnell stoppen.
‫Docker Container zu stoppen. Dann die Container-ID. Für die Container-ID muss ich nur
‫die ersten Ziffern eingeben, damit sie eindeutig sind, und ich habe sie gestoppt.
‫Wenn ich jetzt einen Docker-Container ls mache, werden Sie feststellen, dass nichts auftaucht.
‫Der Befehl ls zeigt daher standardmäßig nur laufende Container an.
‫Wenn ich ein ls -a mache, bekomme ich zwei zurück. Warum bekomme ich zwei?
‫Wenn der Befehl docker container run jedes Mal ausgeführt wird, wird ein neuer Container
‫von diesem Nginx-Image gestartet. Sie werden hier rechts bemerken, dass es diese zufälligen Namen gibt. Diese haben wir nicht genutzt.
‫Wie haben wir diese bekommen?
‫Die Container-ID wird also immer für uns erstellt.
‫Und der Name muss auch eindeutig sein.
‫Und wenn wir es nicht spezifizieren, wird es für uns erstellt. Wir können immer selbst einen Namen
‫vergeben, aber wenn wir es sich aussuchen lassen, ist es tatsächlich ein interessantes
‫Stück Geschichte um Docker, dass sie dies seit Jahren haben und dieser Name zufällig aus einer
‫Open-Source-Liste von Adjektiven generiert wird und die Nachnamen namhafter Hacker oder Wissenschaftler.
‫Und es ist manchmal ziemlich lustig, wenn man einige wirklich merkwürdige Namen findet.
‫Also lasst uns einen neuen erstellen. Docker-Container ausführen. Setzen Sie in
‫unser veröffentlichen und unser trennen ein.
‫Aber dieses Mal werden wir einen Namen angeben. Ich werde es Webhost Nginx nennen.
‫Und jetzt, wenn ich meinen Docker-Container ls -a mache, siehst du drei Container.
‫Die wir gerade angefangen haben. Es hat den Namen webhost und dann die beiden, die wir
‫zuvor gestartet und dann gestoppt haben.
‫Da wir dies nicht mehr im Vordergrund ausführen, können wir die Protokolle nicht sehen.
‫Kehren wir also zu unserem Browser zurück und klicken Sie einige Male auf "Aktualisieren", um einige Protokolle zu generieren.
‫Dann zurück zu unserem Terminal und ich mache Docker Container Logs Webhost. Und es werden die neuesten Protokolle im Webhost ausgespuckt.
‫Es gibt eine Reihe von Optionen, mit denen Sie den Befehl logs ausprobieren möchten, damit er
‫den Protokollen automatisch folgt, oder er kann nur die letzten Protokollereignisse aufzeichnen, damit nicht die gesamte Protokolldatei auf
‫Ihrem Bildschirm abgelegt wird .
‫Wir können auch einige andere Docker-Container-Befehle verwenden, um den laufenden Container zu überprüfen. Wir können Docker Container
‫Top versuchen. Sie können die Hilfe dort sehen.
‫Das lässt uns wissen, dass wir den Containernamen webhost angeben müssen. Sie können sehen, dass dies der Prozess ist, der im
‫Container ausgeführt wird.
‫Nun müssen wir für Nginx nicht unbedingt alles wissen, aber es ist
‫nur interessant
‫festzustellen, dass es bei Nginx tatsächlich einen Master-Prozess gibt, der dann Worker-Prozesse basierend auf der Konfiguration erzeugt.
‫Auch hier können wir docker container und --help eingeben, um eine Liste aller Befehle zu erhalten, die wir für
‫diesen Container ausführen könnten.
‫Lassen Sie uns jetzt aufräumen, was wir gerade getan haben.
‫Machen wir also einen Docker-Container.
‫ls -a, und das wird alle drei meiner Container auflisten.
‫Jetzt werde ich tatsächlich alle drei gleichzeitig entfernen.
‫Manchmal können Unterbefehle von Docker tatsächlich mehrere Werte annehmen.
‫In diesem Fall kann ich also einen Docker-Container rm erstellen und dann tatsächlich 63f 690 und ode angeben.
‫whoops 0de.
‫Also habe ich einen Fehler bekommen. Was ist gerade hier passiert?
‫Gut. Die ersten beiden wurden sicher gelöscht.
‫Die dritte Meldung besagt, dass ich einen laufenden Container nicht entfernen kann, da dies eine Sicherheitsmaßnahme ist.
‫Es stellt sicher, dass Sie nicht versehentlich den aktuellen Prozess entfernen, der noch ausgeführt wird. Wenn Sie einen Docker-Container erstellen,
‫sehen Sie, dass noch einer ausgeführt wird.
‫Jetzt könnte ich tatsächlich einen Docker-Container stoppen, um ihn zuerst anzuhalten und dann zu entfernen.
‫Aber ich mache tatsächlich einen Docker-Container rm -f für force und 63f. Und los geht's.
‫Wenn ich jetzt einen Docker-Container ls -a mache, wirst du sehen, dass nichts da ist.
‫Jetzt haben wir unser Durcheinander aufgeräumt.
‫OKAY.
‫Innerhalb weniger Minuten konnten wir einen einzigen Befehl zum Herunterladen und Ausführen eines Nginx-Webservers mit
‫einer Standardkonfiguration verwenden, der Port 80 überwacht. Anschließend konnten wir mehrere dieser Befehle erstellen, mit den Protokollen
‫spielen und dann die entfernen Container aufräumen, was wir getan hatten.