Lernpfad
Du hast das Installationsprogramm gestartet, dich durch die Einrichtung geklickt und Docker sagt, dass es bereit ist. Aber wie kannst du das wirklich wissen? Jeder Docker-Leitfaden im Internet geht davon aus, dass du deine Einrichtung schon überprüft hast, aber niemand sagt dir, wie du diesen Überprüfungsschritt machst.
Die gute Nachricht ist, dass Docker ein eingebautes Test-Image namens „ hello-world “ hat, das zeigt, ob alles richtig läuft. Du musst nur einen Befehl ausführen, um sofort zu sehen, ob Docker richtig eingerichtet ist.
In diesem Artikel zeige ich dir, was das Image „ hello-world “ macht, wie du es startest, was die Ausgabe bedeutet und wie du häufige Probleme beheben kannst, wenn was schiefgeht.
Nachdem du das Hello World-Beispiel ausgeführt hast, kannst du die Grundlagen von Docker lernen. Unsere Einführung in Docker bringt dich an einem Nachmittag auf den neuesten Stand.
Was ist Docker Hello World?
Das Image „ hello-world “ ist das offizielle Diagnosetool von Docker, um deine Installation zu testen.
Docker hält dieses Image als den kleinsten Container, der beweisen kann, dass Docker funktioniert. Es ist eine kleine ausführbare Datei, die eine Bestätigungsmeldung anzeigt und dann beendet wird. Das ist alles.
Docker bietet „ hello-world “, weil neue Nutzer schnell drei Sachen checken müssen:
- Docker ist auf deinem System richtig installiert.
- Du hast die nötigen Berechtigungen, um Docker-Befehle auszuführen.
- Der Docker-Daemon ist erreichbar und reagiert auf Anfragen.
Stell dir das so vor, als würdest du nach der Installation von Python „ python --version “ ausführen. Du checkst nur, ob das Tool einsatzbereit ist – du baust noch nichts.
Wie man Docker Hello World ausführt
Zum Ausführen des Images „ hello-world “ brauchst du nur einen Befehl.
docker run hello-world
Wenn du diesen Befehl ausführst, macht Docker zwei Sachen:
-
Schaut nach, ob das Bild lokal vorhanden ist. Docker schaut in deinem lokalen Image-Cache nach, ob du
hello-worldschon runtergeladen hast. Wenn das Image da ist, überspringt Docker den Download und fängt direkt mit der Ausführung an. -
Wenn das Image lokal nicht gefunden wird, holt Docker es aus dem Docker Hub. Docker Hub ist die Standard-Registry, wo Docker offizielle Images speichert. Das Bild „
hello-world“ ist echt klein – nur ein paar Kilobyte, also geht der Download schnell.
Sobald Docker das Image hat, erstellt und startet es einen Container aus diesem Image. Der Container macht sein eingebautes Programm, zeigt die Bestätigungsmeldung an und beendet sich.
Was passiert, wenn du Docker Hello World ausführst?
Hier ist der Schritt-für-Schritt-Ablauf, wenn du „ docker run hello-world “ ausführst.
Zuerst checktDocker, ob das Image lokal da ist:. Es checkt deinen lokalen Bild-Cache, um zu sehen, ob du „ hello-world “ schon runtergeladen hast. Wenn das Image da ist, macht Docker mit dem nächsten Schritt weiter. Wenn nicht, verbindet sich Docker mit Docker Hub und lädt das Image runter.
Als Nächstes bautDocker aus dem Imageeinen Container namens „ “auf. Das Image ist wie eine Vorlage – es hat das Programm und alles, was man braucht, um es zu starten. Der Container ist die eigentliche laufende Instanz dieser Vorlage.
Der Container führt sein Programm aus, das eine Bestätigungsmeldung auf deinem Terminal anzeigt. Diese Meldung erklärt, was Docker gerade gemacht hat, und zeigt, dass alles läuft.
Endlich kommt der Container raus. Das Programm „ hello-world ” ist nicht dafür gemacht, ständig zu laufen. Stattdessen wird die Meldung ausgegeben und das Programm wird sofort beendet. Der Container ist immer noch auf deinem System, aber er ist angehalten.
Der ganze Prozess läuft automatisch ab, wenn du den Befehl ausführst; du musst keinen dieser Schritte manuell machen.
Die Ausgabe von „Docker Hello World“ verstehen
Wenn „ hello-world “ erfolgreich läuft, siehst du eine mehrzeilige Meldung, die erklärt, was gerade passiert ist.

Docker-Ausführung „hello-world“
Die Ausgabe fängt mit einer Bestätigung an, dass Docker das Image lokal nicht finden konnte und es deshalb von Docker Hub geholt hat. Du wirst eine Meldung wie „Bild ‚hello-world:latest‘ lokal nicht gefunden“ sehen, gefolgt von einem Download-Fortschrittsbalken.
Als Nächstes kommt die Hauptmeldung, die zeigt, dass Docker richtig läuft. Diese Nachricht zeigt dir genau, was Docker gemacht hat. Es erklärt, dass der Docker-Daemon das Image geholt, daraus einen Container erstellt, die ausführbare Datei darin ausgeführt und die Ausgabe an dein Terminal gestreamt hat.
Die Nachricht enthält auch die nächsten Schritte, die du versuchen kannst. Es wird empfohlen, einen interaktiveren Container wie Ubuntuzu verwenden, der immer läuft und in dem du Befehle ausführen kannst. Das hilft dir, den Unterschied zwischen einem einmaligen Testcontainer und echten Containern zu verstehen, die du für die Entwicklung nutzen wirst.
Schließlich siehst du den Containerausgang. Das Programm „ hello-world “ ist so gemacht, dass es seine Nachricht ausgibt und dann sofort stoppt – es ist kein lang laufender Dienst oder eine lang laufende Anwendung. Der Container hat seine Aufgabe erfüllt, sobald er bestätigt, dass Docker funktioniert.
Wenn du diese vollständige Ausgabe ohne Fehler siehst, funktioniert deine Docker-Installation richtig und du kannst echte Container ausführen.
Häufige Probleme beim Ausführen von Docker Hello World
Selbst ein einfacher Test wie „ hello-world “ kann schiefgehen, wenn Docker nicht richtig eingerichtet ist. Hier sind die häufigsten Probleme und wie du sie beheben kannst.
Docker-Befehl nicht gefunden
Wenn du die Meldung „docker: Befehl nicht gefunden“ oder „docker wird nicht erkannt“ siehst, ist Docker nicht installiert oder nicht im PATH deines Systems.
Auf Linux check mal, ob Docker installiert ist:
which docker

Docker-Standort
Wenn das hier nichts zurückgibt, musst du Docker installieren. Stell sicher, dass Docker Desktop auf macOS und Windows installiert ist und läuft.
Fehler: Zugriff verweigert
Du könntest die Meldung „Zugriff verweigert beim Versuch, eine Verbindung zum Docker-Daemon-Socket herzustellen“ sehen.
Das passiert, wenn dein Benutzerkonto keine Berechtigung hat, auf Docker zuzugreifen. Unter Linux musst du entweder Docker mit sudo ausführen oder deinen Benutzer zur Gruppe „ docker ” hinzufügen:
sudo usermod -aG docker $USER
Melde dich ab und wieder an, damit die Änderung übernommen wird. Auf macOS und Windows mit Docker Desktop ist das kein Problem.
Docker-Daemon läuft nicht
Wenn du die Meldung „Verbindung zum Docker-Daemon nicht möglich“ bekommst, läuft der Docker-Dienst nicht.
Starte unter Linux den Docker-Dienst:
sudo systemctl start docker
Öffne Docker Desktop auf macOS und Windows. Der Daemon startet automatisch, wenn die Anwendung läuft. Sobald alles fertig ist, siehst du ein Docker-Symbol in deiner Taskleiste.
Netzwerkprobleme beim Abrufen des Bildes
Manchmal kann Docker das Image „ hello-world “ nicht von Docker Hub runterladen. Du wirst Fehlermeldungen wegen fehlgeschlagenem Abruf oder Verbindungszeitüberschreitungen sehen.
Schau erstmal, ob deine Internetverbindung klappt. Wenn du dich hinter einer Unternehmensfirewall oder einem Proxy befindest, musst du Docker möglicherweise so einrichten, dass es diese nutzt. Unter Linux kommt das hier rein: /etc/systemd/system/docker.service.d/http-proxy.conf. In Docker Desktop kannst du den Proxy unter „Einstellungen“ einstellen.
Wenn diese Lösungen nicht klappen, gibt dir die Fehlermeldung normalerweise einen Hinweis, wo das Problem liegen könnte – lies sie dir genau durch.
Was nach „Docker Hello World“ zu tun ist
Nachdem du nun überprüft hast, dass Docker funktioniert, geht's hier weiter.
Starte eine echte Container-, mit einer interaktiven shell. Probier mal, einen Ubuntu-Container zu ziehen und auszuführen:
docker run -it ubuntu bash

Ubuntu-Bash
Die Flags „ -it “ geben dir ein interaktives Terminal im Container. Du kannst Befehle ausführen, Pakete installieren und herausfinden, wie Container funktionieren. Gib „ exit “ ein, um den Container zu verlassen.
Schau dir die verfügbaren Images „ “ auf Docker Hub an. Du findest offizielle Images für Datenbanken wie PostgreSQL und MySQL, Programmiersprachen wie Python und Node.js sowie Tools wie Redis und Nginx. Schau mal rein unter hub.docker.com oder such direkt über die Befehlszeile:
docker search python

Verfügbare Python-Images.
Erstell dein eigenes Image mit einer Dockerfile. Fang einfach an: Mach eine Datei namens „ Dockerfile “, die deinen Anwendungscode in einen Container kopiert und festlegt, wie er ausgeführt werden soll. Selbst ein einfaches Dockerfile mit ein paar Zeilen zeigt dir, wie Images aus Anweisungen erstellt werden.
Fazit
Der Befehl „ docker run hello-world “ kann eins richtig gut: Das zeigt, dass deine Docker-Installation funktioniert.
Das ist keine echte Anwendung. Es zeigt dir nicht, wie man Container baut oder Produktionsdienste einrichtet. Aber du kannst beruhigt sein, weil du weißt, dass mit deiner Docker-Installation alles in Ordnung ist.
Wenn „ hello-world “ ohne Probleme gelaufen ist und die Bestätigungsmeldung angezeigt wurde, ist deine Docker-Umgebung richtig eingerichtet und du kannst mit echten Containern loslegen.
Also, was kommt als Nächstes? Mach unseren Kurs„ : Einführung in Docker“. Du bekommst die grundlegenden Kenntnisse, die du brauchst, um im Team zu arbeiten. Danach kannst du etwas Nützliches erstellen, indem du unseren 10 Docker-Projektideen.
Docker und Kubernetes beherrschen
Häufig gestellte Fragen
Wie kann ich die Größe von Docker-Images optimieren?
Fang mit kleineren Basis-Images wie Alpine Linux an, statt gleich mit den kompletten Ubuntu- oder Debian-Images loszulegen. Nutze mehrstufige Builds, um Build-Abhängigkeiten von Laufzeitabhängigkeiten zu trennen – so bleibt dein endgültiges Image schlank, weil Compiler und Build-Tools rausfallen. Kombiniere außerdem RUN-Befehle in deiner Dockerfile, um die Anzahl der Ebenen zu reduzieren, und benutze „ .dockerignore “, um zu verhindern, dass unnötige Dateien in das Image kopiert werden.
Was sind die besten Vorgehensweisen für die Nutzung von Docker in der Produktion?
Lass Container niemals als Root laufen – leg in deiner Dockerfile einen Nicht-Root-Benutzer an und wechsel zu diesem. Benutze bestimmte Image-Tags anstelle von „ latest “, um konsistente Bereitstellungen in allen Umgebungen zu garantieren. Leg Ressourcenbeschränkungen (CPU und Speicher) für deine Container fest, damit nicht ein einzelner Container alle Host-Ressourcen verbraucht. Gesundheitschecks sind auch wichtig – leg sie in deiner Dockerfile fest, damit Orchestrierungstools nicht funktionierende Container erkennen und neu starten können.
Wie kann ich Docker in CI/CD-Pipelines einbauen?
Die meisten CI/CD-Plattformen wie GitHub Actions, GitLab CI und Jenkins haben Docker schon eingebaut. Normalerweise baust du dein Docker-Image als Teil der Pipeline, versiehst es mit dem Commit-SHA oder der Versionsnummer, schickst es an ein Container-Register wie Docker Hub oder AWS ECR und stellst es dann in deiner Umgebung bereit. Der Schlüssel liegt in der Automatisierung des Workflows „Build-Tag-Push-Deploy“, sodass jede Codeänderung ein getestetes, versioniertes Container-Image erzeugt.
Was sind die Vorteile von mehrstufigen Builds in Docker?
Mit mehrstufigen Builds kannst du deine App mit einem Satz Tools erstellen und mit einem anderen, kleineren Satz Tools ausführen. Du könntest zum Beispiel eine Go-Anwendung in einer Stufe kompilieren, die den Go-Compiler enthält, und dann nur die kompilierte Binärdatei in ein minimales Alpine-Image für die letzte Stufe kopieren. Das verkleinert die Bildgröße echt krass – eine kompilierte App braucht vielleicht 1 GB für Build-Tools, aber nur 20 MB zum Ausführen. Kleinere Bilder bedeuten schnellere Bereitstellungen und niedrigere Speicherkosten.
Wie kann ich sicherstellen, dass meine Docker-Container sicher laufen?
Überprüfe deine Images mit Tools wie Docker Scout oder Trivy auf Schwachstellen, bevor du sie einsetzt. Speicher keine Geheimnisse in deiner Dockerfile oder in Umgebungsvariablen – nutze stattdessen Docker-Geheimnisse oder externe Tools zur Verwaltung von Geheimnissen. Halte deine Basis-Images auf dem neuesten Stand, um Sicherheitspatches zu bekommen, und schränke die Container-Funktionen mit dem Flag „ --cap-drop “ ein, um unnötige Linux-Funktionen zu entfernen. Verwende außerdem, wenn möglich, schreibgeschützte Dateisysteme und gib den Docker-Socket in Containern nur frei, wenn es wirklich nötig ist.

