Docker-Container ausführen

DockerBeginner
Jetzt üben

Einführung

In diesem Lab tauchen Sie in ein Szenario aus der viktorianischen Ära ein, in dem Sie die Rolle eines Antiquitätenhändlers übernehmen. Ihr Ziel ist es, historische Artefakte mithilfe moderner Technologie effektiv zu transportieren und zu präsentieren – konkret nutzen Sie Docker-Container, um Ihre Betriebsabläufe zu optimieren.

Stellen Sie sich vor, Sie sind ein angesehener Antiquitätenhändler im London der 1880er Jahre, bekannt für Ihre außergewöhnliche Sammlung von Artefakten aus aller Welt. Anstatt jedoch auf traditionelle Kisten und Vitrinen zu setzen, haben Sie eine revolutionäre Technologie namens „Docker-Container“ entdeckt, mit der Sie Ihre wertvollen Stücke mit beispielloser Effizienz und Sicherheit verpacken, transportieren und präsentieren können.

Am Ende dieses Labs werden Sie die Grundlagen von Docker-Containern verstehen und wissen, wie man sie zum Ausführen von Anwendungen nutzt – was in unserem viktorianischen Szenario Ihre Fähigkeit repräsentiert, Ihre wertvolle Antiquitätensammlung zu verwalten und zu präsentieren.

Einrichten der Docker-Umgebung

In diesem Schritt beginnen Sie damit, sicherzustellen, dass Ihre Docker-Umgebung ordnungsgemäß für die Ausführung von Containern eingerichtet ist. Betrachten Sie dies als die Vorbereitung Ihrer Antiquitätenwerkstatt mit den notwendigen Werkzeugen und Geräten.

  1. Installieren Sie Docker, indem Sie die folgenden Befehle in Ihrem Terminal ausführen:

    sudo apt update
    sudo apt install docker.io
    

    Der erste Befehl aktualisiert Ihre Paketlisten, um sicherzustellen, dass Sie die neueste Version von Docker erhalten, während der zweite Befehl Docker selbst installiert. Das Präfix sudo gewährt die für die Installation erforderlichen Administratorrechte.

  2. Starten Sie nach der Installation von Docker den Docker-Dienst neu, damit der laufende Daemon mit der gerade installierten Version übereinstimmt:

    sudo systemctl restart docker
    

    Dieser Befehl lädt den Docker-Daemon mit der neu installierten Paketversion neu. Falls Docker noch nicht lief, startet restart den Dienst ebenfalls. Dies verhindert Versionskonflikte zwischen Client- und Daemon-API, wenn Sie Ihren ersten Container ausführen.

  3. Überprüfen Sie, ob Docker erfolgreich läuft:

    sudo systemctl status docker
    

    Dieser Befehl prüft, ob Docker aktiv ist und ordnungsgemäß läuft. Sie sollten eine Ausgabe mit active (running) sehen, die bestätigt, dass Ihre Docker-Umgebung bereit ist. Falls Sie inactive oder Fehlermeldungen sehen, führen Sie sudo systemctl restart docker erneut aus, bevor Sie fortfahren.

  4. Um sicherzustellen, dass Sie Docker-Befehle ausführen können, ohne jedes Mal sudo verwenden zu müssen, fügen Sie Ihren Benutzer der Docker-Gruppe hinzu:

    sudo usermod -aG docker $USER
    

    Hinweis: Nachdem Sie diesen Befehl ausgeführt haben, müssen Sie sich möglicherweise ab- und wieder anmelden, damit die Änderungen wirksam werden. Für dieses Lab verwenden wir weiterhin sudo bei unseren Docker-Befehlen, um die Kompatibilität zu gewährleisten.

Ausführen eines Hello-World-Containers

Nachdem Ihre Umgebung eingerichtet ist, führen Sie Ihren ersten Docker-Container aus – ein einfaches „Hello-World“-Beispiel. Betrachten Sie dies als das Ausstellen Ihres ersten Artefakts, um sicherzustellen, dass Ihre neue Container-Technologie wie erwartet funktioniert.

  1. Laden Sie das „hello-world“-Image von Docker Hub herunter:

    sudo docker pull hello-world
    

    Dieser Befehl lädt das hello-world-Image von Docker Hub (einem öffentlichen Repository für Docker-Images) herunter. Stellen Sie sich dies als den Erwerb Ihres ersten Artefakts aus einem fernen Land vor. Docker Hub dient als Marktplatz, auf dem Sie vorgefertigte Container für verschiedene Zwecke finden können.

  2. Führen Sie den „hello-world“-Container aus:

    sudo docker run hello-world
    

    Dieser Befehl erstellt und startet einen Container aus dem hello-world-Image. Der Container führt ein einfaches Programm aus, das eine Nachricht ausgibt und sich dann beendet. In unserem viktorianischen Szenario entspricht dies dem kurzen Vorzeigen Ihres ersten Artefakts, um zu überprüfen, ob Ihr neues Containersystem ordnungsgemäß funktioniert. Falls Docker hier einen Versionskonflikt zwischen Client- und Daemon-API meldet, starten Sie den Dienst mit sudo systemctl restart docker neu und führen Sie den Befehl erneut aus.

  3. Überprüfen Sie die Ausgabe, um sicherzustellen, dass der Container erfolgreich ausgeführt wurde. Sie sollten eine Nachricht sehen, die mit „Hello from Docker!“ beginnt, gefolgt von erklärendem Text. Dies bestätigt, dass:

    • Docker korrekt installiert ist
    • Ihr System erfolgreich Container erstellen kann
    • Sie Images von Docker Hub herunterladen können
  4. Um eine Liste aller Container anzuzeigen (einschließlich derer, die beendet wurden):

    sudo docker ps -a
    

    Dieser Befehl zeigt alle Container an, einschließlich des hello-world-Containers, der nun beendet ist. Sie sehen Details wie die Container-ID, das Image, aus dem er erstellt wurde, das Erstellungsdatum und den aktuellen Status.

Bereitstellen eines Nginx-Webservers

In diesem Schritt stellen Sie einen Nginx-Webserver mithilfe eines Docker-Containers bereit. In unserem viktorianischen Szenario entspricht dies dem Aufstellen einer eleganten Vitrine (Nginx), um Ihre wertvollsten Antiquitäten (Webinhalte) den Besuchern zu präsentieren.

  1. Laden Sie das Nginx-Image von Docker Hub herunter:

    sudo docker pull nginx
    

    Dieser Befehl lädt das offizielle Nginx-Image von Docker Hub herunter. Nginx ist ein beliebter Webserver, der HTML-Inhalte bereitstellen kann. Dies entspricht dem Erwerb einer edlen Vitrine für Ihre Antiquitätensammlung.

  2. Führen Sie einen Nginx-Container im Hintergrundmodus (Detached Mode) aus und ordnen Sie Port 80 auf dem Host Port 80 im Container zu:

    sudo docker run -d -p 80:80 nginx
    

    Schlüsseln wir diesen Befehl auf:

    • run: Erstellt und startet einen neuen Container
    • -d: Führt den Container im Hintergrundmodus aus (Detached Mode)
    • -p 80:80: Ordnet Port 80 auf Ihrem Host-Rechner Port 80 im Container zu, sodass Web-Traffic den Nginx-Server erreichen kann
    • nginx: Gibt das zu verwendende Image an

    Dies ist so, als würden Sie Ihre Vitrine in Ihrem Ausstellungsraum platzieren und sicherstellen, dass Besucher Ihre Antiquitäten sehen können.

  3. Überprüfen Sie, ob Ihr Nginx-Container läuft:

    sudo docker ps
    

    Dieser Befehl zeigt alle laufenden Container an. Sie sollten Ihren Nginx-Container in der Liste sehen, was darauf hinweist, dass er aktiv läuft.

  4. Fügen Sie über das obere Menü des Labs ein Web-Service-Mapping hinzu und setzen Sie das Port-Mapping auf 80. Wenn der Nginx-Webserver erfolgreich läuft, navigiert die Lab-Umgebung automatisch zu einer zufälligen URL im Server-Lab, und Sie sollten die Standard-Willkommensseite von Nginx sehen.

  5. Optional: Wenn Sie manuell über Ihren Browser auf den Nginx-Server zugreifen möchten, können Sie zu http://localhost oder zur IP-Adresse Ihres Rechners navigieren.

  6. Falls Probleme auftreten, können Sie die Container-Logs überprüfen:

    sudo docker logs <container_id>
    

    Ersetzen Sie <container_id> durch die ID Ihres Nginx-Containers, die Sie aus der Ausgabe des Befehls docker ps entnehmen können.

Zusammenfassung

In diesem Lab wurden Sie in die grundlegenden Konzepte der Ausführung von Docker-Containern eingeführt. Durch die Simulation eines historischen Kontextes und die Rolle als Antiquitätenhändler in der viktorianischen Ära haben Sie praktische Erfahrungen im Umgang mit den Ausführungsfunktionen von Docker gesammelt.

Sie haben gelernt, wie man:

  • Eine Docker-Umgebung einrichtet
  • Images von Docker Hub herunterlädt
  • Container sowohl im Vordergrund- als auch im Hintergrundmodus ausführt
  • Container-Ports für den Host-Rechner freigibt
  • Den Status von Containern überprüft

Diese Fähigkeiten bilden das Fundament der Container-Technologie und können auf eine Vielzahl von Anwendungen jenseits unseres Antiquitätenhändler-Szenarios angewendet werden. In modernen Umgebungen werden dieselben Techniken verwendet, um Anwendungen bereitzustellen – von einfachen Webservern bis hin zu komplexen Microservices-Architekturen.

Die Möglichkeit, Anwendungen zusammen mit ihren Abhängigkeiten in portablen Containern zu verpacken, revolutioniert die Art und Weise, wie wir Software bereitstellen und verwalten – ähnlich wie standardisierte Schiffscontainer den globalen Handel verändert haben. Wie unser viktorianischer Antiquitätenhändler sagen würde: „Diese wunderbaren Docker-Container werden die Art und Weise revolutionieren, wie wir unsere Schätze der Welt präsentieren!“