Nachdem wir im ersten Teil dieser Serie die Grundlagen von Docker kennengelernt und erste Container gestartet haben, beschäftigen wir uns nun mit der Erstellung eigener Images. Docker bietet dafür das Konzept der Dockerfiles, die den Aufbau eines Images Schritt für Schritt beschreiben.
Was ist ein Dockerfile?
Ein Dockerfile ist eine einfache Textdatei, in der alle Anweisungen stehen, um ein Image automatisch zu erstellen. Statt ein Image manuell aufzubauen, können Entwickler mit einem Dockerfile den Prozess reproduzierbar und versionierbar gestalten.
Vorteile:
- Einheitliche Entwicklungs- und Produktionsumgebungen
- Leichte Weitergabe von Projekten
- Automatisierbare Builds in CI/CD-Pipelines
Aufbau eines Dockerfiles
Ein typisches Dockerfile besteht aus Anweisungen wie:
Befehl | Bedeutung |
---|---|
FROM | Basis-Image, z. B. FROM ubuntu:20.04 |
RUN | Führt Befehle im Container aus, z. B. RUN apt-get update |
COPY | Kopiert Dateien vom Host in den Container |
WORKDIR | Setzt das Arbeitsverzeichnis im Container |
CMD oder ENTRYPOINT | Startbefehl für den Container |
Einfaches Beispiel: Webserver
Ein minimaler Webserver mit Nginx könnte so aussehen:
# Basis-Image
FROM nginx:latest
# Kopiere statische Webseite in den Container
COPY ./html /usr/share/nginx/html
# Container startet automatisch Nginx (Standard in diesem Image)
Speichern Sie die Datei als Dockerfile
im Projektordner.
Image erstellen und starten
Erstellen des Images:
docker build -t mein-webserver .
Starten des Containers:
docker run -d -p 8080:80 mein-webserver
Die Webseite ist nun unter http://localhost:8080
erreichbar.
Best Practices für Dockerfiles
- Kleine Basis-Images verwenden, z. B.
alpine
, um die Größe zu reduzieren - Mehrere RUN-Befehle kombinieren, um wenige Layer zu erzeugen
- .dockerignore-Datei nutzen, um unnötige Dateien nicht ins Image zu kopieren
- Versionsangaben machen, um reproduzierbare Builds zu gewährleisten
Schreibe einen Kommentar