Images
Eigene Docker-Images ermöglichen die Erstellung massgeschneiderter Container mit individuellen Konfigurationen, Abhängigkeiten und Anwendungen. Sie basieren auf einer Dockerfile, die die Anweisungen zum Aufbau des Images enthält.
Kommandos
ENV
ENV setzt Umgebungsvariablen, die innerhalb des Containers verfĂĽgbar sind.
ENV NODE_ENV=productionCOPY und ADD
Beide Befehle dienen dazu, Dateien in das Image zu kopieren.
COPYkopiert Dateien oder Verzeichnisse aus dem Build-Kontext ins Image.ADDkann zusätzlich Archive extrahieren und Dateien aus einer URL herunterladen.
COPY local.txt ./directory/
ADD archiv.tar.gz ./directory/COPY sollte bevorzugt werden, ausser wenn das automatische Entpacken von Archiven benötigt wird.
VOLUME
VOLUME definiert ein persistentes Verzeichnis, das änderbar bleibt, selbst wenn das Image neu erstellt wird. Es eignet sich für Datenbanken oder Logs.
EXPOSE
EXPOSE gibt an, auf welchem Port der Container läuft (nur dokumentarisch, öffnet keinen Port).
ENTRYPOINT und CMD
Beide definieren den Standardbefehl fĂĽr den Container.
CMDsetzt einen Standardbefehl, kann aber durch Argumente beim Start überschrieben werden.ENTRYPOINTsetzt einen festen Befehl, dem zusätzliche Argumente übergeben werden können.
Startet man den Container mit docker run my-image Test, ergibt sich:
CMD wird überschrieben → Ausgabe:
TestENTRYPOINT bleibt bestehen → Ausgabe:
echo Test
ENTRYPOINT fĂĽr festgelegte Startbefehle, CMD fĂĽr Standardwerte.
Beispiel
Dieses Beispiel erstellt ein einfaches Node.js-Backend mit Express.
Docker-Image builden
Image auf Docker Hub veröffentlichen
Multi-Stage-Images
Multi-Stage-Builds ermöglichen es, schlanke und optimierte Docker-Images zu erstellen, indem sie verschiedene Build-Stufen in einem Dockerfile nutzen.
Beispiel
Vorteile
Kleinere Images, da nur die tatsächlich benötigten Dateien ins finale Image übernommen werden.
Trennung von Build- und Laufzeitumgebung.
Vermeidung unnötiger Abhängigkeiten im finalen Image.
Last updated