Dockerfile: Unterschied zwischen den Versionen

Aus xinux.net
Zur Navigation springen Zur Suche springen
Zeile 48: Zeile 48:
  
 
=Best Practices für Dockerfiles=
 
=Best Practices für Dockerfiles=
*Verwenden von eiemn minimales Basis-Image:
+
*Verwenden eines minimalen Basis-Images
**Verwenden Sie Images wie `alpine` oder `slim`, um die Größe des endgültigen Images zu reduzieren.
+
**Verwenden eines Images wie `alpine` oder `ubuntu-slim`, um die Größe des endgültigen Images zu reduzieren.
*Sortieren Sie mehrzeilige Argumente:
+
*Ordnen von mehrzeilige Argumente, um die Lesbarkeit zu verbessern und die Größe des Docker-Images zu reduzieren.
**Ordnen Sie mehrzeilige Argumente alphabetisch, um die Lesbarkeit zu verbessern und die Größe des Docker-Images zu reduzieren.
+
*Verwenden von `COPY` statt `ADD`, es sei denn, wir benötigen spezielle Funktionen von `ADD`.
*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 Größe des Images zu minimieren.
*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 von Umgebungsvariablen für konfigurierbare Werte, um die Wiederverwendung des Images zu fördern.
*Verwenden Sie Umgebungsvariablen für konfigurierbare Werte, um die Wiederverwendung des Images zu fördern.
+
*Bereinigen von temporäre Dateien und Cache nach der Installation von Paketen.
*Bereinigen Sie temporäre Dateien und Cache nach der Installation von Paketen.
+
*Verwenden von `.dockerignore`, um unnötige Dateien aus dem Build-Kontext auszuschließen.
*Verwenden Sie `.dockerignore`, um unnötige Dateien aus dem Build-Kontext auszuschließen.
+
*Starten von Anwendungen im Container als Nicht-Root-Benutzer.
*Starten Sie Anwendungen im Container als Nicht-Root-Benutzer.
 
  
 
=Dockerfile erstellen und Image bauen=
 
=Dockerfile erstellen und Image bauen=
 
*Erstellen Sie eine Datei namens `Dockerfile` (ohne Dateierweiterung) im Projektverzeichnis.
 
*Erstellen Sie eine Datei namens `Dockerfile` (ohne Dateierweiterung) im Projektverzeichnis.
 
*Fügen Sie die gewünschten Anweisungen hinzu, entsprechend den Anforderungen Ihres Projekts
 
*Fügen Sie die gewünschten Anweisungen hinzu, entsprechend den Anforderungen Ihres Projekts

Version vom 11. Mai 2023, 12:17 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 innerhalb des Images aus.
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 eines minimalen Basis-Images
    • Verwenden eines Images wie `alpine` oder `ubuntu-slim`, um die Größe des endgültigen Images zu reduzieren.
  • Ordnen von mehrzeilige Argumente, um die Lesbarkeit zu verbessern und die Größe des Docker-Images zu reduzieren.
  • Verwenden von `COPY` statt `ADD`, es sei denn, wir benötigen spezielle Funktionen von `ADD`.
  • Führen Sie mehrere `RUN`-Anweisungen in einer Zeile zusammen, um die Größe des Images zu minimieren.
  • Verwenden von Umgebungsvariablen für konfigurierbare Werte, um die Wiederverwendung des Images zu fördern.
  • Bereinigen von temporäre Dateien und Cache nach der Installation von Paketen.
  • Verwenden von `.dockerignore`, um unnötige Dateien aus dem Build-Kontext auszuschließen.
  • Starten von 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