0Pricing
Docker & DevOps Fundamentals · Lektion

Build-Caching nutzen

Optimieren Sie Docker-Build-Zeiten, indem Sie den Docker-Build-Cache verstehen und effektiv einsetzen.

Build-Caching nutzen ist eine kostenlose Docker & DevOps Fundamentals-Lektion auf CoddyKit. Dies ist Lektion 2 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.

Schneller entwickeln mit Caching

Das Erstellen von Docker-Images kann Zeit in Anspruch nehmen, insbesondere bei komplexen Anwendungen. Der Build-Cache von Docker ist eine intelligente Funktion, die den Vorgang erheblich beschleunigt!

Hierzu werden Layer aus vorherigen Builds wiederverwendet, sodass Docker nicht jedes Mal alles von Grund auf neu erstellen muss.

Build-Caching nutzen — Illustration 1

Builds Layer für Layer

Wenn Sie mithilfe einer Dockerfile ein Docker-Image erstellen, führt Docker jede Anweisung Zeile für Zeile aus.

  • Jede Anweisung wie FROM, RUN oder COPY erstellt einen neuen „Layer“ in Ihrem Image.
  • Diese Layer werden übereinandergestapelt und bilden das fertige Image.

Dockers Cache-Prüfung

Bevor Docker eine Anweisung ausführt, prüft es, ob genau dieser Layer bereits zuvor erstellt wurde. Dabei vergleicht Docker:

  • die Anweisung selbst (z. B. RUN apt update).
  • den „Kontext“ bestimmter Anweisungen (z. B. die Dateien, die mit COPY kopiert werden).

Wird ein passender Layer gefunden, verwendet Docker ihn aus dem Cache erneut, anstatt die Anweisung noch einmal auszuführen.

Cache ungültig machen

Der Cache ist praktisch, wird aber nicht immer verwendet. Wenn Docker eine Änderung an einer Anweisung oder ihrem Kontext erkennt, wird der Cache für diesen Layer und alle nachfolgenden Layer ungültig.

Das bedeutet, dass Docker ab diesem Punkt alles neu erstellt und alle darunterliegenden gecachten Layer ignoriert.

Intelligente Reihenfolge der Anweisungen

Um möglichst viele Cache-Treffer zu erzielen, ordnen Sie die Anweisungen in Ihrer Dockerfile von der am wenigsten wahrscheinlich zu ändernden bis zur am wahrscheinlichsten zu ändernden an.

  • Stabile Abhängigkeiten zuerst: Installieren Sie Systempakete oder Anwendungsabhängigkeiten, die sich nur selten ändern.
  • Anwendungscode zuletzt: Kopieren Sie den Quellcode Ihrer Anwendung, der sich häufig ändert, so spät wie möglich.

Reihenfolge für Cache-Treffer

Sehen wir uns ein Beispiel an. Wenn Sie den Befehl RUN pip install, der sich normalerweise seltener ändert, vor COPY . . platzieren, das sich bei jeder Code-Aktualisierung ändert, kann Docker den Abhängigkeits-Layer wiederverwenden.

Stellen Sie sich vor, requirements.txt enthält flask und gunicorn, während app.py Ihre Hauptanwendung ist.

Dockerfile:

FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY app.py .
CMD ["python", "app.py"]

Wenn sich nur app.py ändert, erstellt Docker lediglich die letzten COPY- und CMD-Layer neu. Das spart Zeit!

Selektives Kopieren mit .dockerignore

Wenn Sie COPY . . verwenden, prüft Docker jede einzelne Datei im Build-Kontext auf Änderungen. Selbst kleine, irrelevante Dateien wie .git-Ordner oder lokale Testdaten können den Cache ungültig machen.

Verwenden Sie eine .dockerignore-Datei, um unnötige Dateien und Verzeichnisse aus Ihrem Build-Kontext auszuschließen. Dadurch verhindern Sie, dass diese Dateien eine Ungültigkeit des Caches auslösen.

.dockerignore in der Praxis

Legen Sie eine Datei namens .dockerignore im Stammverzeichnis Ihres Build-Kontexts ab, also neben Ihrer Dockerfile.

Beispiel für eine .dockerignore:

.git
.venv
__pycache__
*.log
node_modules

Wenn Sie nun COPY . . verwenden, ignoriert Docker diese Dateien. Dadurch werden Cache-Treffer zuverlässiger!

Wann Sie den Cache überspringen sollten

Manchmal soll sichergestellt werden, dass alles komplett neu erstellt wird und der Cache vollständig ignoriert wird. Das kann beim Debuggen hilfreich sein oder wenn Sie sicherstellen möchten, dass Sie die allerneuesten Versionen Ihrer Abhängigkeiten verwenden.

Sie können Docker dazu zwingen, den Build ohne Cache neu auszuführen, indem Sie Ihrem Build-Befehl das Flag --no-cache hinzufügen:

docker build --no-cache -t my-app:latest .

Cache-Optimierung prüfen

Sie erstellen ein Docker-Image für eine Node.js-Anwendung. Ihre Dockerfile sieht derzeit so aus:

FROM node:16-alpine
WORKDIR /app
COPY . .
RUN npm install
CMD ["npm", "start"]

Welche Änderung würde diese Dockerfile für das Caching von Builds am besten optimieren?

Zusammenfassung: Beherrschen Sie den Cache!

Gut gemacht! Sie haben gelernt, wie Sie den Docker-Build-Cache für schnellere Image-Builds einsetzen.

  • Docker erstellt Images Layer für Layer und verwendet gecachte Layer, wenn möglich, erneut.
  • Änderungen an einer Anweisung oder ihrem Kontext machen den Cache ab diesem Punkt ungültig.
  • Optimieren Sie die Reihenfolge, indem Sie die Anweisungen von der am wenigsten bis zur am wahrscheinlichsten zu ändernden anordnen.
  • Verwenden Sie .dockerignore, um irrelevante Dateien aus dem Build-Kontext auszuschließen.
  • Verwenden Sie --no-cache, um bei Bedarf einen vollständig neuen Build zu erzwingen.

Effizientes Caching führt zu kürzeren Entwicklungszyklen und flexibleren Bereitstellungen!

Häufig gestellte Fragen

Ist die Lektion „Build-Caching nutzen“ kostenlos?

Ja — der vollständige Text von „Build-Caching nutzen“ 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 „Build-Caching nutzen“?

Optimieren Sie Docker-Build-Zeiten, indem Sie den Docker-Build-Cache verstehen und effektiv einsetzen. 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 2 von 4.

Wie lange dauert die Lektion „Build-Caching nutzen“?

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

  1. Multi-Stage-Builds für mehr Effizienz
  2. Build-Caching nutzen
  3. Best Practices für die Dockerfile-Sicherheit
  4. Image-Größe mit Slim- und Distroless-Basen minimieren
← Zurück zu Docker & DevOps Fundamentals