Interviewfrage für DevOps Engineer

Wie hältst du Container-Images klein und sicher?

Worauf der Interviewer abzielt, wie du deine Antwort aufbaust und ein gesprochenes Beispiel zum Anpassen.

Kurzantwort

Nutze Multi-Stage-Builds, damit Compiler und Build-Dependencies nie im finalen Image landen, starte von einer minimalen Base wie distroless oder slim und lauf als Non-Root-User. Ordne die Layer so, dass die Dependency-Installation getrennt vom Source cached, ergänze eine .dockerignore, pinne Base Images per Digest und scanne beim Build. Niemals Secrets als Build-Argumente übergeben, denn die bleiben in der Layer-Historie.

Warum Interviewer das fragen

Der Interviewer will wissen, ob du Images als Build-Artefakte mit einer Lieferkette behandelst oder als Ablage für ein Dateisystem. Er achtet auf Multi-Stage-Builds und Layer-Caching als Antwort zur Größe und auf Non-Root, minimale Base und gepinnte Digests als Antwort zur Sicherheit. Zu erwähnen, dass Build-Argumente in die Historie leaken, zeigt Praxis statt auswendig gelernter Checkliste.

So baust du deine Antwort auf

  • Teil die Antwort in Größe und Sicherheit, damit sie strukturiert bleibt.
  • Nenne Multi-Stage-Builds und Layer-Reihenfolge für die Größe.
  • Deck Base-Image-Wahl, Non-Root und Pinning für die Sicherheit ab.
  • Ergänze Scanning, SBOM-Generierung und die Falle mit Secrets in Layern.

Beispielantwort

Gesprochenes Beispiel, erste Person

Bei der Größe machen zwei Dinge die Hauptarbeit: Multi-Stage-Builds und Layer-Reihenfolge. In einem vollen Image mit Toolchain bauen, dann nur den kompilierten Output in eine minimale Runtime kopieren, das bringt ein Image typischerweise von mehreren hundert Megabyte auf ein paar Dutzend. Die Reihenfolge zählt, weil die Dependency-Installation ein eigener Layer über dem Source-Copy sein sollte, sonst invalidiert jede Codeänderung den Cache und alles wird neu gebaut. Eine .dockerignore verhindert, dass das lokale git-Verzeichnis und node_modules überhaupt an den Daemon gehen. Für die Sicherheit laufe ich als Non-Root-User mit read-only Root-Dateisystem, wo die App das zulässt, pinne das Base Image per Digest, damit ein Rebuild reproduzierbar ist, und baue regelmäßig neu, damit Base-Patches ankommen, statt zu pinnen und zu vergessen. Scanning läuft in der Pipeline und schlägt bei behebbaren High-Severity-Findings fehl, und wir veröffentlichen eine SBOM mit dem Image, damit wir beim nächsten großen Advisory die Frage welche Services nutzen diese Library in Minuten beantworten können. Secrets kommen nie in Build-Args, die sind in der Historie sichtbar.

Steht dieses Vorstellungsgespräch bald an? GhostPilot hört bei deinem Live-Call mit, erkennt die Frage in dem Moment, in dem sie gestellt wird, und bringt dir eine strukturierte Antwort in Echtzeit auf den Bildschirm. Probier es im nächsten Mock aus, oder hol dir einen $29 Session Pass, kein Abo, für den Ernstfall.

So funktioniert es

Nachfragen, mit denen du rechnen solltest

  • Wie bekommst du ein Secret in einen Build, ohne dass es in einem Layer landet?
  • Wie gehst du mit einem Scanner-Finding um, für das es keinen Fix gibt?
  • Was geht kaputt, wenn du auf eine distroless Base wechselst, und wie debuggst du das?

Weitere Fragen für DevOps Engineer

Dein Interviewer stellt seine eigene Version davon. Kopier deine echte Stellenbeschreibung in den kostenlosen Question Predictor und bekomm die 20 Fragen, die diese Rolle am wahrscheinlichsten stellt, samt dem, worauf jede wirklich abzielt.

Meine Fragen vorhersagen

Üb die harten Fragen, bevor sie gestellt werden

Trainier mit einem Live-Copiloten und geh dann vorbereitet rein. Ein $29 Session Pass bringt dich durch das Vorstellungsgespräch, ohne Abo und ohne Bindung.

GhostPilot holen