Hinweis: Dieser Beitrag enthält Affiliate-Links (mit * gekennzeichnet). Kaufst du über einen dieser Links, erhalte ich eine kleine Provision — für dich ändert sich der Preis nicht.
DOCKER-HAMMER! Wer Container baut, kennt das Problem: Du startest mit einem FROM ubuntu:22.04, und schon hast du 200 unbenutzte Pakete drin, die alle ihre eigenen CVE-Sammlungen mitbringen. Genau hier zerschlägt Docker den gordischen Knoten: Mehr als 1.000 gehärtete Container-Images kommen kostenlos – unter Apache 2.0 Lizenz! UNGLAUBLICH.
SCHOCK: Was sind „hardened“ Images?
Ein gehärtetes Image ist ein Container-Image, das auf das absolute MINIMUM reduziert wurde:
- Keine Shells drin (oft kein
bash, keinsh). - Keine Paket-Manager (
apt,yum,apk– weg). - Keine sysadmin-Werkzeuge, die Angreifer lieben.
- Reproducible Builds – bit-genau identisch reproduzierbar.
- SBOMs & Signaturen – Software Bill of Materials und Cosign-Signatur dabei.
Heißt im Klartext: Ein Angreifer, der in deinen Container einbricht, hat fast nichts in der Hand. Keine Shell, kein curl, kein wget. Mit dem Container kommst du nicht weit.
UNGLAUBLICH: Apache 2.0 – warum der Lizenz-Hammer?
Bisher gab’s gehärtete Images vor allem von Chainguard oder als Distroless von Google. Chainguard war oft kostenpflichtig, Distroless ist Open Source aber begrenzt. Docker macht jetzt 1.000+ Images vollständig Open Source unter Apache 2.0. Heißt:
- Du darfst sie verwenden, weiterverteilen, sogar verändern.
- Du kannst sie in kommerziellen Produkten einsetzen.
- Du musst nichts bezahlen.
Für Self-Hoster und Indie-Devs ist das SENSATIONELL. Niemand muss mehr ein Hardened-Image-Abo abschließen.
GEFAHR! Was muss ich beachten?
Hardened Images sind komplett anders als „normale“ Images. Du kannst nicht einfach reingehen und debuggen. Drei Punkte sind Pflicht:
- Multi-Stage-Builds nutzen: Compiler im Build-Image, nur das Binärprogramm im Hardened-Runtime-Image.
- Logs zentral sammeln – ohne Shell debuggst du im Container nichts mehr.
- USER-Direktive setzen: Hardened Images sollten NIE als root laufen.
So baust du ein gehärtetes Image in 5 MINUTEN!
Beispiel für eine kleine Go-App:
# Stage 1: Build mit voll-fettem Image
FROM golang:1.23 AS build
WORKDIR /src
COPY . .
RUN CGO_ENABLED=0 go build -o /out/app ./cmd/app
# Stage 2: Hardened Runtime
FROM docker.io/dockerhardened/static:latest
COPY --from=build /out/app /app
USER 65532:65532
ENTRYPOINT ["/app"]
FERTIG. Dein finales Image ist 10 MB klein, hat keine Shell, keinen Paket-Manager – und läuft als nobody.
EXTRA-TIPP: SBOM mit Syft prüfen!
Du willst wissen, was wirklich in einem hardened Image drinsteckt? Lass Syft ran:
syft docker.io/dockerhardened/python:3.13 -o table
Du kriegst eine saubere Liste aller Komponenten. Kein Bullshit, keine Annahmen.
FAZIT: Container-Sicherheit für ALLE!
Docker zieht hier eine echte Bewegung an: 1.000+ gehärtete Images kostenlos und Apache 2.0. Für Self-Hoster, kleine Teams und Homelabber ist das ein Riesensprung in der Sicherheit. JETZT deinen nächsten Build-Job auf Multi-Stage umstellen, hardened Image als Runtime, fertig. Weniger CVEs, weniger Angriffsfläche, mehr Schlaf.