CodeGym /Kurse /Docker SELF /Tags und Image-Versionen

Tags und Image-Versionen

Docker SELF
Level 14 , Lektion 2
Verfügbar

8.1 Tagging in Docker

Tagging in Docker ist der Prozess, einem Image ein Label zuzuweisen, das die Versionsverwaltung erleichtert. Es macht das Deployment und die Aktualisierung von Anwendungen bequemer und überschaubarer. In dieser Vorlesung werden wir im Detail behandeln, was Tags sind, wie man sie verwendet und welche Empfehlungen dir helfen, effizienter mit ihnen zu arbeiten.

Ein Tag (Tag) in Docker ist ein Label, das es ermöglicht, eine bestimmte Version eines Images zu identifizieren. Tags vereinfachen die Nachverfolgung von Änderungen und helfen dabei, die richtigen Versionen für verschiedene Umgebungen wie Entwicklung, Test und Produktion auszuwählen.

Grundlegende Konzepte von Tags:

  1. Eindeutigkeit: Ein Tag identifiziert eindeutig eine bestimmte Version eines Images.
  2. Versionierung: Tags werden verwendet, um Image-Versionen zu kennzeichnen, zum Beispiel v1.0, v2.0, latest.
  3. Flexibilität: Tags werden verwendet, um Images zu erstellen, die bestimmten Entwicklungsphasen entsprechen, zum Beispiel beta, stable, prod.

8.2 Wie man Tags verwendet

1. Tags beim Build eines Images zuweisen

Du kannst einem Image beim Build mit dem Parameter -t des Befehls docker build ein Tag zuweisen.

Beispiel:

In diesem Beispiel wird das Image mit dem Namen myapp und dem Tag 1.0 erstellt.

Terminal


docker build -t myapp:1.0 .

2. Zusätzliche Tags für ein bestehendes Image zuweisen

Du kannst einem bereits bestehenden Image mit dem Befehl docker tag zusätzliche Tags hinzufügen.

Beispiel:

In diesem Beispiel wird dem Image myapp:1.0 ein zusätzlicher Tag latest zugewiesen.

Terminal


docker tag myapp:1.0 myapp:latest

3. Tags beim Start eines Containers verwenden

Wenn du einen Container startest, kannst du den spezifischen Tag des Images angeben, das du verwenden möchtest.

Beispiel:

In diesem Beispiel wird ein Container basierend auf dem Image myapp mit dem Tag 1.0 gestartet.

Terminal


docker run -d myapp:1.0

8.3 Praxis des Taggings

Verwendung von Semantischer Versionierung

Die Semantische Versionierung (Semantic Versioning) ist eine Standardpraxis zur Vergabe von Versionen, die hilft, das Niveau der Änderungen eines Images zu verstehen.

Format der Semantischen Versionierung:


<major>.<minor>.<patch>

Wo:

  • major: Wichtige Änderungen, die nicht mit vorherigen Versionen kompatibel sind.
  • minor: Neue Features, die mit vorherigen Versionen kompatibel sind.
  • patch: Fehlerbehebungen und andere kleinere Änderungen.

Beispiel:

Terminal


docker build -t myapp:2.1.3 .

Verwendung von Zusatzlabels

Zusatzlabels helfen, den Zustand eines Images zu kennzeichnen, z. B. beta, alpha, stable oder prod.

Beispiel:

Terminal


docker build -t myapp:1.0-beta .
docker build -t myapp:1.0-stable .

Aktualisierung von Tags

Bei der Aktualisierung eines Images wird empfohlen, die Tags zu ändern, um Änderungen einfacher nachverfolgen zu können. Der Tag latest wird oft verwendet, um die neueste Version eines Images zu kennzeichnen.

Beispiel:

Terminal


docker build -t myapp:2.0 .
docker tag myapp:2.0 myapp:latest

8.4 Beispiele für die Verwendung von Tags

Beispiele für die Nutzung von Tags in verschiedenen Umgebungen:

Beispiel 1: Entwicklung

Für die Entwicklung werden oft Images mit Tags verwendet, die die aktuelle Version oder den Entwicklungsstatus kennzeichnen, wie z.B. dev.

Terminal


docker build -t myapp:dev .
docker run -d myapp:dev

Beispiel 2: Testing

In Testumgebungen werden Images mit Tags verwendet, die bestimmte Versionen oder Zustände kennzeichnen, wie z.B. beta.

Terminal


docker build -t myapp:1.1-beta .
docker run -d myapp:1.1-beta

Beispiel 3: Produktion

In Produktionsumgebungen ist es wichtig, stabile und geprüfte Versionen von Images zu verwenden, die durch Tags wie stable, prod oder semantische Versionen wie 1.1.0-stable gekennzeichnet sind.

Terminal


docker build -t myapp:1.1.0-stable .
docker run -d myapp:1.1.0-stable

8.5 Beste Praktiken

1. Immer semantische Versionierung verwenden

Halte dich an semantische Versionierung für alle Images. Das hilft, Änderungslevel klar zu unterscheiden und erleichtert das Versionsmanagement.

2. Verständliche und aussagekräftige Tags verwenden

Verwende Tags, die den Zustand oder das Ziel des Images klar wiedergeben (z. B. beta, stable, prod).

3. Vermeide die Nutzung von latest in der Produktion

Der Tag latest kann nützlich für Entwicklung und Tests sein, aber in der Produktion sollte man spezifische Versionen verwenden, um unvorhersehbare Änderungen zu vermeiden.

4. Die Nutzung von Tags dokumentieren

Dokumentiere, wie und für welchen Zweck die Tags in deinem Projekt verwendet werden. Das hilft dem Team, den Versionierungsprozess besser zu verstehen und Fehler zu minimieren.

Beispiele für Dockerfile mit Tags

Beispiel 1: Erstellen und Zuweisen von Tags

Dockerfile

# Dockerfile für Version 1.0.0 
FROM node:14
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 3000
CMD ["node", "app.js"]

Befehle zum Bauen und Taggen

Terminal


docker build -t myapp:1.0.0 .
docker tag myapp:1.0.0 myapp:stable

Beispiel 2: Image aktualisieren und taggen

Dockerfile

# Dockerfile für Version 1.1.0 mit neuer Funktion
FROM node:14
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN rm -rf /app/tests /app/docs
ENV NODE_ENV=production
EXPOSE 3000
CMD ["node", "app.js"]

Befehle zum Bauen und Taggen

Terminal

        
docker build -t myapp:1.1.0 .
docker tag myapp:1.1.0 myapp:latest
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION