sd-cardImages

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

chevron-rightFROMhashtag

FROM legt das Basis-Image fest, auf dem das neue Image aufbaut.

FROM node:lts-alpine
chevron-rightLABELhashtag

LABEL fĂĽgt Metadaten zum Image hinzu.

LABEL maintainer="Levin" version="1.0"
chevron-rightENVhashtag

ENV setzt Umgebungsvariablen, die innerhalb des Containers verfĂĽgbar sind.

ENV NODE_ENV=production
chevron-rightWORKDIRhashtag

WORKDIR setzt das Arbeitsverzeichnis innerhalb des Containers.

WORKDIR /usr/src/app
chevron-rightCOPY und ADDhashtag

Beide Befehle dienen dazu, Dateien in das Image zu kopieren.

  • COPY kopiert Dateien oder Verzeichnisse aus dem Build-Kontext ins Image.

  • ADD kann zusätzlich Archive extrahieren und Dateien aus einer URL herunterladen.

COPY local.txt ./directory/
ADD archiv.tar.gz ./directory/
circle-info

COPY sollte bevorzugt werden, ausser wenn das automatische Entpacken von Archiven benötigt wird.

chevron-rightRUNhashtag

RUN führt Befehle während des Build-Prozesses aus.

chevron-rightUSERhashtag

USER setzt den Benutzer, unter dem der Container-Prozess läuft.

chevron-rightVOLUMEhashtag

VOLUME definiert ein persistentes Verzeichnis, das änderbar bleibt, selbst wenn das Image neu erstellt wird. Es eignet sich für Datenbanken oder Logs.

chevron-rightEXPOSEhashtag

EXPOSE gibt an, auf welchem Port der Container läuft (nur dokumentarisch, öffnet keinen Port).

chevron-rightENTRYPOINT und CMDhashtag

Beide definieren den Standardbefehl fĂĽr den Container.

  • CMD setzt einen Standardbefehl, kann aber durch Argumente beim Start ĂĽberschrieben werden.

  • ENTRYPOINT setzt 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: Test

  • ENTRYPOINT bleibt bestehen → Ausgabe: echo Test

circle-info

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

1

Login

2

Image umbenennen

3

Image hochladen

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