Dockerfile: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Zeile 10: | Zeile 10: | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
− | ! FROM | + | ! Schlüsselwort |
− | + | ! Erklärung | |
+ | |- | ||
+ | | FROM | ||
+ | | Definiert das Basis-Image, von dem das neue Image erstellt wird. | ||
|- | |- | ||
| RUN | | RUN |
Version vom 11. Mai 2023, 12:14 Uhr
Was ist eine Dockerfile?
- Eine Dockerfile ist eine Textdatei, die Anweisungen zur Erstellung eines Docker-Images enthält.
- Es ermöglicht eine automatisierte, reproduzierbare und versionierbare Erstellung von Docker-Images.
Grundlegende Struktur eines Dockerfiles
- Jede Zeile im Dockerfile stellt eine Anweisung dar.
- Anweisungen beginnen in der Regel mit einem Schlüsselwort gefolgt von Argumenten.
- Kommentare können mit einem `#` eingeleitet werden.
Wichtige Dockerfile-Anweisungen
Schlüsselwort | Erklärung |
---|---|
FROM | Definiert das Basis-Image, von dem das neue Image erstellt wird. |
RUN | Führt einen Shell-Befehl aus und erstellt eine neue Ebene im Image. |
CMD | Gibt den Standardbefehl an, der beim Starten des Containers ausgeführt wird. |
ENTRYPOINT | Legt den Einstiegspunkt für den Container fest; wird üblicherweise für ausführbare Anwendungen verwendet. |
WORKDIR | Legt das Arbeitsverzeichnis für nachfolgende Anweisungen fest. |
COPY | Kopiert Dateien oder Verzeichnisse vom lokalen System in das Image. |
ADD | Ähnlich wie `COPY`, kann jedoch auch remote-Dateien hinzufügen oder Archive automatisch entpacken. |
EXPOSE | Informiert Docker, dass der Container auf einem bestimmten Netzwerk-Port lauscht. |
ENV | Setzt Umgebungsvariablen für das Image. |
VOLUME | Erstellt einen Speicherbereich für Daten, die von einem Container verwendet werden. |
USER | Setzt den Benutzer für nachfolgende Anweisungen und für den laufenden Container. |
Best Practices für Dockerfiles
- Verwenden von eiemn minimales Basis-Image:
- Verwenden Sie Images wie `alpine` oder `slim`, um die Größe des endgültigen Images zu reduzieren.
- Sortieren Sie mehrzeilige Argumente:
- Ordnen Sie mehrzeilige Argumente alphabetisch, um die Lesbarkeit zu verbessern und die Größe des Docker-Images zu reduzieren.
- Verwenden Sie `COPY` statt `ADD`, es sei denn, Sie benötigen spezielle Funktionen von `ADD`.
- Führen Sie mehrere `RUN`-Anweisungen in einer Zeile zusammen, um die Anzahl der erstellten Schichten zu reduzieren und die Größe des Images zu minimieren.
- Verwenden Sie Umgebungsvariablen für konfigurierbare Werte, um die Wiederverwendung des Images zu fördern.
- Bereinigen Sie temporäre Dateien und Cache nach der Installation von Paketen.
- Verwenden Sie `.dockerignore`, um unnötige Dateien aus dem Build-Kontext auszuschließen.
- Starten Sie Anwendungen im Container als Nicht-Root-Benutzer.
Dockerfile erstellen und Image bauen
- Erstellen Sie eine Datei namens `Dockerfile` (ohne Dateierweiterung) im Projektverzeichnis.
- Fügen Sie die gewünschten Anweisungen hinzu, entsprechend den Anforderungen Ihres Projekts