3

Docker Lernen für Anfänger – Das Einsteiger-Tutorial 2022

Docker ist ein sehr nützliches DevOps-Tool, dass sich schnell lernen lässt. Jedoch wirkt es für viele Anfänger zunächst abschreckend.

In diesem Tutorial wirst du Docker lernen, ganz ohne Vorwissen. Das Gute daran ist, dass du nur ein paar Befehle kennen musst, um sofort in die Praxis einsteigen zu können.

Natürlich hat auch Docker eine Vielzahl an Befehlen und Argumenten, jedoch wirst du in diesem Artikel feststellen, dass du bereits mit 10 Befehlen, bereits eine enorme Kontrolle hast. Danach wirst du die Grundzüge des Tools bereits verstanden haben und dein neues Wissen in der Praxis einsetzen können.

Starten wir mit der wichtigsten Frage, wenn wir Docker lernen wollen:

1. Was ist Docker?

Docker ist ein Tool, das die Erstellung, Bereitstellung und Ausführung von Anwendungen durch die Verwendung von Containern erleichtern soll.

Das Stichwort hier ist der "Container".

Container ermöglichen es einem Entwickler, eine Anwendung mit all seinen Teilen (bspw. Bibliotheken und anderen Abhängigkeiten) als Paket einzupacken und dann als Paket auszuliefern.

Merke:

  1. Wir packen ein Paket (das ist der Container)
  2. Das Paket können wir dann ausliefern (benutzen)

"Okay! Aber warum brauchen wir Docker?"

Schauen wir uns zur Beantwortung der Frage kurz die wichtigsten Features an.

Die wichtigsten Features von Docker

  • Docker benötigt weniger Ressourcen als klassische Virtualisierungen (Virtual Machines), indem es über Container einen kleineren Footprint des Betriebssystems zur Verfügung stellt.
  • Die Container bzw. "Containerisierung" erlaubt eine einfache und nahtlose Zusammenarbeit verschiedener Unternehmensabteilungen miteinander (z.B. Entwicklung, QM, Betrieb)
  • Docker-Container können überall bereitgestellt werden (z.B. auf virtuellen Maschinen, physische Server, Cloud-Server)
  • Docker-Container sind für Gewöhnlich sehr ressourcensparend und daher leicht zu skalieren

Sehr gut! Bis hierhin hast du gelernt, dass Docker Container benutzt, um Anwendungen als fertiges "Paket" bereitzustellen und auszuführen sowie, dass es einige Vorzüge hinsichtlich des niedrigen Ressourcenverbrauchs sowie der Skalierung hat.

Du wirst Docker am besten lernen und verstehen, wenn du selbst einige Erfahrungen damit sammelst. Im nächsten Schritt werden wir es auf einem Betriebssystem unserer Wahl downloade, installieren und konfigurieren.

2. Docker herunterladen und lokal benutzen

Docker kann für eine Vielzahl von Betriebssystemen installiert werden, wobei wir für den professionellen Einsatz Linux empfehlen.

Um einige Erfahrungen mit dem Tool zu sammeln, reicht zunächst eine lokale Installation auf deinem Windows-Rechner oder Mac. Nachfolgend werde ich Docker für Windows installieren. Dafür muss zunächst der "Docker Windows Installer" auf der offiziellen Website heruntergeladen werden. (Hinweis: Dort findest du auch den Installer für Mac OS und eine Anleitung für Linux)

3. Docker Installation und Konfiguration

Sobald du die Datei heruntergeladen hast, kannst du mit der Installation beginnen.

1. Öffne dafür die Installer-Datei

docker installer icon

2. Starte die Installation und drücke auf "OK"

docker installation

(Hinweis: Installation schiefgelaufen? Unter Windows 10 gibt es einige Software-Voraussetzungen bei der Installation. Sollte eine Installation nicht möglich sein, da du kein Windows 10, oder keine 64-Bit benutzt, kannst du alternativ die etwas ältere "Docker Toolbox" auf der offiziellen Website herunterladen. Diese ist mit älteren Systemen kompatibel.)

Jetzt wird Docker Desktop lokal installiert. Das kann einige Minuten dauern:

docker installation fortschritt

Docker Installationsfortschritt unter Windows 10 (64-bit)

Unter Umständen muss dein Computer nach der Installation neugestartet werden, um die Einrichtung von Docker abzuschließen (das war bei mir der Fall):

docker neustart

Nach dem Neustart kann es weitergehen.

Wenn du folgende Nachricht sehen solltest, benötigst du das neueste WSL-Update, welches du unter folgendem Link herunterladen kannst

docker wsl2 kernel

Sobald die Installation abgeschlossen wurde und Docker zum ersten Mal hochfährt, wirst du folgendes Fenster sehen:

(Es handelt sich dabei um ein simples Tutorial, um Docker kennenzulernen. Du kannst es mit einem Klick auf "Skip Tutorial" überspringen)

docker tutorial onboarding

Schauen wir uns nun an, wie Docker Desktop benutzt werden kann, um mit Containern unter Windows zu arbeiten.

Starte als Nächstes deine Kommandozeile:

  • Windows: Suche nach der Eingabeaufforderung (oder PowerShell) unter Windows. Starte die Eingabeaufforderung oder PowerShell danach.
  • MacOS: Suche mit dem Finder nach dem "Terminal" unter MacOS. Starte das Terminal im Anschluss.

Kurzer Hinweis: Die Kommandozeile benötigen wir, um Docker Befehle zu geben, damit wir das Tool kontrollieren können.

Keine Sorge. Du lernst die wichtigsten Befehle gleich Schritt-für-Schritt kennen und benötigst kein Vorwissen in der Kommandozeile.

Wenn du die Eingabeaufforderung oder das Terminal geöffnet hast, sollte das ungefähr so aussehen:

docker kommandozeile start

4. Funktioniert mein Docker?

Um zu testen, ob Docker richtig läuft, können wir den Befehl docker run verwenden. Die Syntax des "run" Befehls sieht wie folgt aus:

docker run <Image Name>

Dieser Befehl wird benutzt, um einen Befehl in einem Docker-Container auszuführen. Die Option <Image Name> steht, fast selbsterklärend, für den Namen des Images (z.B. hello-world, apache, nginx), welches als Container gestartet und ausgeführt werden soll.

Dein erster Container "Hello World"

Führe nun folgenden Befehl in deiner Kommandozeile aus:

docker run hello-world

Sobald du diesen Befehl ausführst, passiert Folgendes:

  1. Das Image "hello-world" wird heruntergeladen
  2. Nach dem Download wird das Image als Container ausgeführt

Der Text in den rot-markierten Zeilen zeigt uns, dass die Installation erfolgreich war. Wir bekommen zusätzlich den Text "Hello from Docker!" mit vielen weiteren Optionen und Befehlsbeispielen angezeigt:

docker run helloworld container

Super! Du hast soeben deinen ersten Container mit dem Image "hello-world" gestartet.

Da kommt schnell die Frage auf: Welche Images, außer "hello-world", gibt es sonst noch? Diese Frage beantwortet das sogenannte "Docker Hub".

5. Docker Hub - Das Verzeichnis für Images

Beim Docker Hub handelt es sich um ein Verzeichnis, dass alle verfügbaren Images der Community auflistet, die zum Download verfügbar sind. Du kannst auch deine eigenen Docker-Images hochladen und für andere bereitstellen.

docker hub

Hier sind einige der beliebtesten Docker-Images aufgelistet, die du im Docker Hub herunterladen kannst:

  • Apache
  • Nginx
  • MySQL
  • Ubuntu
  • Centos
  • Debian
  • Node
  • Mariadb
  • Alpine
  • uvm.

Jetzt weißt du, wo du Base-Images für deine Docker Container downloaden kannst. Doch was genau ist eigentlich ein Image und was kann man damit alles machen?

6. Docker Images - Was kannst du damit machen?

Im Docker basiert alles auf Images. Ein Image ist eine Kombination aus einem Dateisystem und Parametern. Nehmen wir ein Beispiel für den folgenden Befehl im Docker.

docker run nginx
  • Der Docker-Befehl ist spezifisch und sagt dem Docker-Programm auf dem Betriebssystem, dass etwas getan werden muss.
  • Der run-Befehl wird benutzt, um zu erwähnen, dass wir eine Instanz (Container) eines Images erstellen wollen
  • Schließlich stellt "nginx" das Image dar, aus dem der Container ausgeführt wird.

Nun schauen wir uns an, wie wir das im Docker Hub verfügbare Nginx-Image verwenden können, um den Nginx-Webserver auf unserem Computer laufen zu lassen. Wir können dies tun, indem wir den folgenden Befehl in der Kommandozeile ausführen:

docker run nginx:latest

Docker Images anzeigen

Um die Liste der Docker Images auf deinem System anzuzeigen, kannst du den Befehl "docker images" benutzen:

docker images

Dieser Befehl wird benutzt, um alle Images anzuzeigen, die derzeit auf dem System installiert sind.

Output

Wenn wir den obigen Befehl ausführen, bekommen wir folgenden Output:

docker images running

Aus der obigen Ausgabe kannst du sehen, dass der Server (genauer gesagt mein lokaler Windows-Rechner) zwei Images installiert hat:

  1. Nginx
  2. Hello-World

Jedes Image hat die folgenden Attribute:

  • TAG - Dies wird verwendet, um Bilder logisch voneinander abzugrenzen oder die Versionsnummer zu taggen
  • IMAGE-ID - Die ID wird zur eindeutigen Identifizierung des Images verwendet.
  • CREATED - Die Anzahl der Tage, seit das Image erstellt wurde.
  • SIZE - Die Größe des Images

Docker-Images löschen

Die Docker-Images auf dem System können mit dem Befehl docker rmi entfernt werden. Schauen wir uns diesen Befehl genauer an:

docker rmi <ImageID>

Output

Wenn wir den obigen Befehl ausführen, bekommen wir Folgendes angezeigt:

docker rmi image

Weitere Operationen mit Images

Es gibt noch viel mehr, was du mit Images anstellen kannst. Für dieses Tutorial sollen diese grundlegenden Befehle zu Images jedoch reichen.

Wenn dich das Thema interessiert, schaue dir die weiteren Docker Tutorials in unserem Blog an oder belege einen Online-Kurs, wie den LerneProgrammieren Docker-Schnellstart. Dort lernst du unter anderem, wie du deine eigenen Images mit einem Dockerfile erstellst und dann auf jedem System als Container ausführen kannst.

7. Container verwalten - Die wichtigsten Docker-Befehle für Container

Container sind Instanzen von Docker-Images, die mit dem Befehl docker run ausgeführt werden können. Der grundlegende Zweck von Docker ist das Ausführen von Containern. Daher schauen wir uns im Folgenden, die wichtigsten Docker-Befehle im Umgang mit der Container-Verwaltung sowie einen typischen Container-Lebenszyklus zur Verdeutlichung an.

Docker - Container-Lebenszyklus

Jeder Container in Docker hat einen Lebenszyklus, der sich wie folgt, erklären lässt:

  1. Zu Beginn befindet sich der Docker-Container im erstellten Zustand.
  2. Wenn der Befehl Docker run benutzt wird, dann geht der Docker-Container in den Run-Zustand über.
  3. Der Befehl Docker kill wird benutzt, um einen existierenden Docker-Container zu löschen.
  4. Der Befehl Docker pause wird benutzt, um einen bestehenden Docker-Container zu pausieren.
  5. Der Befehl Docker stop wird benutzt, um einen existierenden Docker-Container zu stoppen.
  6. Der Befehl Docker run wird benutzt, um einen Container von einem gestoppten Zustand in einen laufenden Zustand zurückzubringen.

Ausführen eines Containers

Diesen Befehl kennst du bereits aus den vorherigen Abschnitten des Tutorials. Mit dem Befehl docker run führst du ein bestimmtes Image aus, dass dann als Container instanziiert wird:

docker run centos

Auflistung der Container

Man kann alle Container des Servers (Computers) über den Befehl docker ps auflisten. Dieser Befehl wird benutzt, um die aktuell laufenden Container zurückzugeben:

docker ps

Im Anschluss lernst du eine weitere Variation des docker ps-Befehls kennen.

Alle Docker Container des Systems auflisten

Dieser Befehl wird benutzt, um alle Container auf dem System aufzulisten:

docker ps -a

Docker Container stoppen

Dieser Befehl wird benutzt, um einen laufenden Container zu stoppen.

docker stop <ContainerID>

Docker Container löschen (rm)

Dieser Befehl wird benutzt, um einen Container zu löschen.

docker rm <ContainerID>

Docker-Container Statistiken anzeigen

Dieser Befehl wird benutzt, um die Statistiken, insbesondere die CPU- und Speicherauslastung, des Containers anzuzeigen.

docker statistics <ContainerID>

Docker Container pausieren

Dieser Befehl wird benutzt, um die Prozesse in einem laufenden Container anzuhalten:

docker pause <ContainerID>

Docker Container pausieren aufheben (unpause)

Dieser Befehl wird benutzt, um die Prozesse in einem Container vom "Pause"-Zustand, wieder in den "Run"-Zustand zu bringen.

docker unpause <ContainerID>

Laufenden Docker Container beenden (kill)

Dieser Befehl wird benutzt, um die Prozesse in einem laufenden Container zu beenden.

docker kill <ContainerID>

Jetzt kennst du bereits die wichtigsten Befehle zur Containerverwaltung und wir können zu unserem Fazit übergehen

Fazit: Docker Lernen als Anfänger in 2022

In diesem ausführlichen Artikel zum Thema Docker hast du viel über das DevOps Tool gelernt. Du hast dich ausgiebig mit dem Sinn und Zweck von Docker, so wie dessen Features und Vorteile gegenüber herkömmlichen Visualisierungen (wie Virtual Machines) auseinandergesetzt. Weiterhin hast du gelernt, wie du Docker herunterladen und auf deinem Server oder auch auf dem lokalen Rechner installieren kannst.

Im Anschluss hast du die Kommandozeile geöffnet und einen Docker-Befehl (docker run) eingegeben, um deinen ersten Docker-Container (hello-world) zu starten.

Danach hast du das Docker-Hub, ein Verzeichnis mit zig Tausenden Base-Images, kennengelernt. Im nächsten Kapitel wurde dein Wissen zu Images und den jeweiligen Docker-Befehlen zu Images vertieft. Im letzten Schritt hast du die wichtigsten Befehle zur Verwaltung deiner Container-Umgebung entdeckt.

Dieses Tutorial war bereits sehr umfangreich. Es gibt jedoch noch viel zu lernen. Wenn du einen tiefergehenden Einblick in Docker bekommen möchtest, empfehle ich dir den LerneProgrammieren Docker-Schnellstart. Es ist ein Online-Kurs, der dich schnell in die Praxis mit Docker bringt. Alternativ empfehle ich dir unsere weiteren Tutorials und Praxis-Anleitungen zu Docker.

Ich bin gespannt, wofür du Docker einsetzen wirst. Hast du bereits Ideen? Lass es mich in den Kommentaren wissen.

  • 17. August 2020
Click Here to Leave a Comment Below 3 comments
Jens Gebauer - 20. September 2021

Sehr gute Einführung in das Thema. Hat mir einen prima Einstieg beschert. Vielen Dank!

Reply
    Arek - 11. Oktober 2021

    Sehr gerne, freut mich!

    Reply
Der Bär - 4. Juni 2023

Hi, prima Tutorial!

Hätte nur eine winzige Anmerkung. Das hier funktioniert nicht:
#docker statistics

Hab schnell gegoogelt, es muss wohl heißen:
#docker stats

Sicherlich nur ein veraltetes Statement.
Daher ohne Einschränkung: Vielen Dank für Deine Mühe!

Reply

Leave a Reply: