0Pricing
DevOps Bootcamp · Lektion

Image-Größe mit Slim- und Distroless-Basen minimieren

Verkleinern Sie finale Images durch minimale Basis-Images, das Entfernen von Build-Tools sowie Distroless- oder Scratch-Basen für schnellere Downloads und eine kleinere Angriffsfläche.

Image-Größe mit Slim- und Distroless-Basen minimieren ist eine kostenlose DevOps Bootcamp-Lektion auf CoddyKit. Dies ist Lektion 4 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 DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.

Warum die Image-Größe wichtig ist

Kleinere Images werden schneller heruntergeladen, starten schneller, kosten weniger Speicherplatz und bieten Angreifern weniger Pakete als Angriffspunkte. Die Optimierung der Größe verbessert also sowohl die Performance als auch die Sicherheit.

Eine schlanke Basis wählen

Standard-Images sind praktisch, aber umfangreich. Wenn Sie node:20 (~1GB) durch node:20-slim oder node:20-alpine ersetzen, können Sie sofort Hunderte Megabytes einsparen.

FROM node:20-slim

Kompromisse bei Alpine

Alpine ist sehr klein, verwendet aber musl libc statt glibc, wodurch native Binärdateien gelegentlich nicht funktionieren. Testen Sie sorgfältig; manchmal ist -slim die sicherere schlanke Option.

FROM python:3.12-alpine

RUN-Layer zusammenfassen

Jeder RUN-Befehl fügt einen Layer hinzu. Verketten Sie zusammengehörige Befehle und führen Sie die Bereinigung im selben Layer durch, sonst vergrößern die gelöschten Dateien weiterhin den früheren Layer.

RUN apt-get update \
 && apt-get install -y curl \
 && rm -rf /var/lib/apt/lists/*

.dockerignore verwenden

Eine .dockerignore-Datei hält überflüssige Dateien aus dem Build-Kontext heraus: node_modules, .git und Logs. Ein kleinerer Kontext bedeutet schnellere Builds und kleinere Layer.

# .dockerignore
.git
node_modules
*.log

Zusammenfassung zu Multi-Stage-Builds

Bauen Sie in einer Stage mit allen Compilern und kopieren Sie anschließend mit COPY --from nur das Artefakt in eine saubere finale Stage. Die Toolchain wird nicht mit ausgeliefert.

FROM golang:1.22 AS build
WORKDIR /src
COPY . .
RUN go build -o app

FROM alpine:3.20
COPY --from=build /src/app /app

Distroless kennenlernen

Distroless-Images enthalten nur Ihre Anwendung und deren Laufzeitumgebung – keine Shell, keinen Paketmanager und keine zusätzlichen Binärdateien. Sie sind sehr klein und schwer auszunutzen.

FROM gcr.io/distroless/static-debian12
COPY --from=build /src/app /app
ENTRYPOINT ["/app"]

Keine Shell, kein Problem

Distroless enthält keine Shell, daher funktionieren RUN-Befehle und docker exec sh nicht. Erledigen Sie die gesamte Einrichtung in früheren Stages; verwenden Sie den Tag :debug, wenn Sie den Container von innen untersuchen müssen.

Die scratch-Basis

Für vollständig statische Binärdateien (Go, Rust) enthält FROM scratch außer Ihrer ausführbaren Datei nichts – insgesamt oft nur wenige Megabytes.

FROM scratch
COPY --from=build /src/app /app
ENTRYPOINT ["/app"]

Erfolge messen

Verwenden Sie docker images, um Größen zu vergleichen, und docker history, um die größten Layer zu ermitteln. Optimieren Sie zuerst die umfangreichsten Layer.

docker history myapp:latest

Versionen festlegen, nicht latest

Das Festlegen eines bestimmten Tags oder Digests macht Builds reproduzierbar und verhindert unerwartete Größenzunahmen, wenn sich ein vorgelagertes latest ändert.

FROM node:20.11.1-slim

Kurztest

Was ist das Besondere an einem Distroless-Image?

Zusammenfassung

Sie können Images jetzt konsequent verkleinern:

  • Wählen Sie Basen wie -slim, -alpine, Distroless oder scratch
  • Verketten und bereinigen Sie RUN-Layer; verwenden Sie .dockerignore
  • Multi-Stage-Builds lassen die Toolchain weg
  • Messen Sie mit docker history und legen Sie Versionen fest

Kleinere Images ermöglichen schnellere und sicherere Deployments.

Häufig gestellte Fragen

Ist die Lektion „Image-Größe mit Slim- und Distroless-Basen minimieren“ kostenlos?

Ja — der vollständige Text von „Image-Größe mit Slim- und Distroless-Basen minimieren“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Image-Größe mit Slim- und Distroless-Basen minimieren“?

Verkleinern Sie finale Images durch minimale Basis-Images, das Entfernen von Build-Tools sowie Distroless- oder Scratch-Basen für schnellere Downloads und eine kleinere Angriffsfläche. Du übst DevOps Bootcamp 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 DevOps Bootcamp zu starten?

Keine Vorkenntnisse erforderlich. DevOps Bootcamp 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 4 von 4.

Wie lange dauert die Lektion „Image-Größe mit Slim- und Distroless-Basen minimieren“?

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 DevOps Bootcamp-Lektion Code schreiben und ausführen?

Ja. Jede DevOps Bootcamp-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 DevOps Bootcamp