Wie baut man ein Docker Image? – Einführung in Dockerfiles

Wie baut man ein Docker Image? – Einführung in Dockerfiles

Nachdem ich meine ersten Container gestartet hatte, wurde mir schnell klar:
Um wirklich eigene Anwendungen zu containerisieren, braucht man ein Dockerfile.
In diesem Artikel schauen wir uns an, wie Docker Images entstehen, wie ein Dockerfile aufgebaut ist und warum es so wichtig ist.

Was ist ein Docker Image?

Ein Docker Image ist die Grundlage eines Containers. Es enthält:

  • die Anwendung
  • alle Abhängigkeiten
  • Konfigurationen
  • eine standardisierte Laufzeitumgebung

Images sind unveränderlich („immutable“). Jeder Container ist eine Instanz eines Images.

Was ist ein Dockerfile?

Ein Dockerfile ist eine simple Textdatei, die beschreibt, wie Docker ein Image bauen soll.
Die Befehle darin sagen Docker Schritt für Schritt:

  • welches Basis-Image genutzt wird
  • welche Dateien kopiert werden sollen
  • welche Befehle ausgeführt werden
  • welcher Port freigegeben wird
  • wie der Container gestartet wird

Ein einfaches Dockerfile sieht so aus:

FROM nginx:alpine
COPY index.html /usr/share/nginx/html/index.html

Damit ersetzt du die Standard-Startseite des Nginx-Webservers durch deine eigene.

Docker Image bauen

Der Befehl zum Bauen eines Images lautet:

docker build -t mein-nginx .

Erklärung:

  • -t mein-nginx = Name des Images
  • . = aktuelles Verzeichnis (dort muss das Dockerfile liegen)

Image starten

Um einen Container aus deinem selbstgebauten Image zu starten:

docker run -p 8080:80 mein-nginx

Jetzt kannst du deine Webseite auf http://localhost:8080 öffnen.

Best Practices für Dockerfiles

  • Minimale Basis-Images verwenden (z. B. alpine)
  • Unnötige Dateien entfernen (Cache, Logfiles)
  • Schichten reduzieren (weniger Docker Layer)
  • .dockerignore verwenden, um Build-Zeit zu verkürzen
  • Explizite Versionen nutzen für reproduzierbare Builds

Mein persönliches Learning

Am Anfang hätte ich nicht gedacht, wie viel Einfluss ein kleines Dockerfile auf die Stabilität einer Anwendung haben kann.
Die Buildzeiten wurden kürzer, die Images sauberer und das Deployment einfacher.

Besonders wichtig war für mich das Prinzip der „kleinsten möglichen Basis“ –
große Images verursachen viele Probleme, kleine Images sind schneller und sicherer.

Was als Nächstes kommt

Im nächsten Beitrag geht es um:

„Was ist Kubernetes? – Die Grundlagen für Einsteiger“

Fazit

Ein Dockerfile ist der Dreh- und Angelpunkt beim Erstellen eigener Container.
Wer versteht, wie Images gebaut werden, legt den Grundstein für den Einstieg in Kubernetes und die gesamte Cloud-Native-Welt.


Nächster Artikel: Was ist Kubernetes? – Einstieg in die Orchestrierung

Nach oben scrollen