Dockerfiles verstehen
Lernen Sie die Syntax und gängige Anweisungen in Dockerfiles kennen, mit denen der Aufbau eines Images definiert wird.
Dockerfiles verstehen ist eine kostenlose Docker & DevOps Fundamentals-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Docker & DevOps Fundamentals-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Docker & DevOps Fundamentals-Kurs umfasst insgesamt 4 Lektionen.
Was ist eine Dockerfile?
Stellen Sie sich ein Rezept zum Backen eines Kuchens vor. Eine Dockerfile ist sehr ähnlich! Sie ist eine einfache Textdatei mit allen Anweisungen, die Docker zum automatischen Erstellen eines Docker-Images benötigt.
Statt Zutaten zu mischen, teilen Sie Docker mit, welches Basisbetriebssystem verwendet, welche Software installiert und wie Ihre Anwendung im Image eingerichtet werden soll.

Vorteile: Automatisierte Erstellung
Dockerfiles bieten viele Vorteile für Ihren Entwicklungsworkflow:
- Automatisierung: Keine manuellen Schritte mehr! Docker erstellt Images jedes Mal konsistent.
- Versionskontrolle: Dockerfiles sind Code, daher können Sie Änderungen mit Git verfolgen.
- Reproduzierbarkeit: Jede Person mit der Dockerfile kann exakt dasselbe Image erstellen.
- Transparenz: Sie können genau sehen, was sich in einem Image befindet.
Grundstruktur einer Dockerfile
Eine Dockerfile ist eine Liste von Anweisungen, die von oben nach unten der Reihe nach ausgeführt werden. Jede Anweisung erstellt eine neue Schicht im Image.
Die grundlegende Syntax ist einfach:
INSTRUCTION argumentsKommentare beginnen wie in vielen Programmiersprachen mit einem #. Docker-Anweisungen unterscheiden nicht zwischen Groß- und Kleinschreibung, conventionell werden sie jedoch großgeschrieben.
Ein Basis-Image mit FROM auswählen
Jede Dockerfile muss mit der Anweisung FROM beginnen. Sie legt das Basis-Image fest, auf dem Ihr neues Image aufbaut. Dieses Basis-Image enthält normalerweise ein Betriebssystem (z. B. Alpine Linux) und manchmal bereits installierte Software.
Stellen Sie es sich als Wahl Ihres Ausgangspunkts vor – eine leere Leinwand oder eine Leinwand, auf der bereits einige Grundfarben vorhanden sind.
FROM alpine:latestBefehle mit RUN ausführen
Mit der Anweisung RUN werden während des Image-Build-Prozesses Befehle ausgeführt. Hier installieren Sie Pakete, erstellen Verzeichnisse oder kompilieren Code.
Jeder RUN-Befehl erstellt eine neue Schicht. Daher kann das Zusammenfassen von Befehlen mit && dazu beitragen, die Image-Größe zu reduzieren.
RUN apk update && apk add gitStandardbefehl mit CMD
Die Anweisung CMD stellt Standardbefehle oder -argumente für einen ausgeführten Container bereit. Anders als RUN werden CMD-Befehle ausgeführt, wenn ein Container gestartet wird, nicht während des Builds.
Wenn Sie beim Ausführen eines Containers einen Befehl angeben (z. B. docker run my-image ls), überschreibt dieser Befehl die Anweisung CMD.
CMD ["echo", "Hello from container!"]Dateien mit COPY hinzufügen
Die Anweisung COPY kopiert neue Dateien oder Verzeichnisse von Ihrem Hostcomputer (auf dem Sie das Image erstellen) an einen angegebenen Pfad im Dateisystem des Docker-Images.
Sie wird im Allgemeinen gegenüber ADD bevorzugt, da sie transparenter ist und nur lokale Dateien kopiert.
COPY ./app /usr/src/appArbeitsverzeichnis und Umgebungsvariablen
WORKDIR legt das Arbeitsverzeichnis für alle nachfolgenden Anweisungen von RUN, CMD, ENTRYPOINT, COPY und ADD fest. Dadurch wird Ihre Dockerfile übersichtlicher.
ENV legt Umgebungsvariablen fest. Diese Variablen stehen nachfolgenden Anweisungen in der Dockerfile und auch dem laufenden Container zur Verfügung.
WORKDIR /app
ENV PORT=8080Ports mit EXPOSE dokumentieren
Die Anweisung EXPOSE teilt Docker mit, dass der Container zur Laufzeit an den angegebenen Netzwerkports Verbindungen entgegennimmt. Der Port wird dadurch jedoch nicht tatsächlich veröffentlicht.
Betrachten Sie die Anweisung als Dokumentation. Damit der Port von außerhalb des Containers erreichbar ist, müssen Sie das Flag -p mit docker run verwenden.
EXPOSE 80
EXPOSE 443Ihre erste einfache Dockerfile
Fassen wir alles zusammen! Hier ist eine einfache Dockerfile, die ein Alpine-Linux-Image einrichtet, ein Paket installiert und einen Standardbefehl festlegt.
Speichern Sie die Datei zum Erstellen als Dockerfile in einem leeren Verzeichnis und führen Sie anschließend in Ihrem Terminal docker build -t my-simple-app . aus.
FROM alpine:latest
LABEL maintainer="CoddyKit"
RUN apk update && apk add --no-cache bash
WORKDIR /app
CMD ["bash", "-c", "echo 'Hello from my custom Alpine image!' && sleep 3600"]Quiz zu Dockerfile-Anweisungen
Testen Sie Ihr Wissen! Welche dieser Anweisungen werden während des Image-Build-Prozesses ausgeführt und ändern dabei direkt den Inhalt oder die Struktur des Images?
Rückblick: Die Grundlagen der Dockerfile
Sie haben einen großen Schritt beim Verständnis von Docker-Images gemacht! Sie haben gelernt, dass Dockerfiles Textdateien mit Anweisungen zum Erstellen von Images sind und große Vorteile wie Automatisierung und Reproduzierbarkeit bieten.
Behandelte Hauptanweisungen:
FROM: Legt das Basis-Image fest.RUN: Führt Befehle während des Builds aus.CMD: Legt den Standardbefehl für einen laufenden Container fest.COPY: Fügt Dateien vom Host zum Image hinzu.WORKDIR,ENV,EXPOSE: Konfigurieren die Umgebung von Image und Container.
Häufig gestellte Fragen
Ist die Lektion „Dockerfiles verstehen“ kostenlos?
Ja — der vollständige Text von „Dockerfiles verstehen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Docker & DevOps Fundamentals-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Docker & DevOps Fundamentals-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „Dockerfiles verstehen“?
Lernen Sie die Syntax und gängige Anweisungen in Dockerfiles kennen, mit denen der Aufbau eines Images definiert wird. Du übst Docker & DevOps Fundamentals mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Docker & DevOps Fundamentals zu starten?
Keine Vorkenntnisse erforderlich. Docker & DevOps Fundamentals auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.
Wie lange dauert die Lektion „Dockerfiles verstehen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Docker & DevOps Fundamentals-Lektion Code schreiben und ausführen?
Ja. Jede Docker & DevOps Fundamentals-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Dockerfiles verstehen
- Benutzerdefinierte Docker-Images erstellen
- Image-Ebenen und Optimierung
- Multi-Stage-Builds und kleinere Images