So bereitest du dein erstes Docker-Image vor

DockerDockerBeginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

Einführung

Docker hat die Softwareentwicklung revolutioniert, indem es eine leistungsstarke Plattform für die Containerisierung bietet. Dieses Tutorial führt Sie durch die grundlegenden Schritte beim Bereitstellen Ihres ersten Docker-Images und hilft Entwicklern und IT-Experten, die grundlegenden Konzepte und die praktische Implementierung von Docker-Containern zu verstehen.

Docker-Grundlagen

Was ist Docker?

Docker ist eine Open-Source-Plattform, die die Bereitstellung, Skalierung und Verwaltung von Anwendungen mithilfe der Containerisierungstechnologie automatisiert. Sie ermöglicht es Entwicklern, eine Anwendung mit allen Abhängigkeiten in einer standardisierten Einheit, einem Container, zu verpacken.

Wichtige Docker-Konzepte

Container

Ein Container ist ein leichtgewichtiges, eigenständiges, ausführbares Paket, das alles enthält, was zum Ausführen einer Anwendung benötigt wird: Code, Laufzeitumgebung, Systemtools, Bibliotheken und Einstellungen.

graph TD A[Anwendungskode] --> B[Container] C[Abhängigkeiten] --> B D[Systembibliotheken] --> B E[Laufzeitumgebung] --> B

Docker-Images

Docker-Images sind schreibgeschützte Vorlagen, die zum Erstellen von Containern verwendet werden. Sie dienen als Grundlage für die Containererstellung und können in Registern wie Docker Hub gespeichert werden.

Docker-Architektur

Komponente Beschreibung
Docker Client Befehlszeilenschnittstelle zur Interaktion mit Docker
Docker Daemon Hintergrunddienst zur Verwaltung von Docker-Objekten
Docker Registry Speicherung und Verteilungssystem für Docker-Images

Warum Docker verwenden?

  1. Konsistenz in verschiedenen Umgebungen
  2. Leichtgewichtige und schnelle Bereitstellung
  3. Einfache Skalierbarkeit
  4. Verbesserte Ressourcenauslastung
  5. Vereinfachte Konfigurationsverwaltung

Docker-Installation unter Ubuntu 22.04

Um Docker unter Ubuntu zu installieren, verwenden Sie die folgenden Befehle:

## Paketindex aktualisieren
sudo apt update

## Abhängigkeiten installieren
sudo apt install apt-transport-https ca-certificates curl software-properties-common

## Offiziellen GPG-Schlüssel von Docker hinzufügen
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

## Stabiles Repository einrichten
echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

## Docker Engine installieren
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

Überprüfung der Docker-Installation

Überprüfen Sie nach der Installation, ob Docker korrekt funktioniert:

## Docker-Version prüfen
docker --version

## hello-world Container ausführen
sudo docker run hello-world

Docker-Workflow

graph LR A[Entwicklung] --> B[Image erstellen] B --> C[In Registry pushen] C --> D[Image ziehen] D --> E[Container ausführen]

Erste Schritte mit LabEx

LabEx bietet interaktive Docker-Lernumgebungen, die Entwicklern helfen, Containerisierungstechnologien effektiver zu üben und zu verstehen.

Umgebungsaufbau

Systemvoraussetzungen

Bevor Sie die Docker-Umgebung einrichten, stellen Sie sicher, dass Ihr System die folgenden Anforderungen erfüllt:

Anforderung Spezifikation
Betriebssystem Ubuntu 22.04 LTS
Prozessor 64-Bit-Prozessor
Arbeitsspeicher Mindestens 4 GB
Speicherplatz 20 GB freier Speicherplatz

Systemvorbereitung

Systempakete aktualisieren

sudo apt update
sudo apt upgrade -y

Notwendige Abhängigkeiten installieren

sudo apt install -y \
  ca-certificates \
  curl \
  gnupg \
  lsb-release \
  software-properties-common

Docker-Installationsmethoden

graph LR A[Docker-Installation] --> B[Installation über Repository] A --> C[Manuelle Paketinstallation] A --> D[Installation über Skript]

Installation über Repository (empfohlen)

Docker's offiziellen GPG-Schlüssel hinzufügen
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
Repository einrichten
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Docker-Pakete installieren
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-compose-plugin

Konfiguration nach der Installation

Benutzer zur Docker-Gruppe hinzufügen

sudo usermod -aG docker $USER

Docker beim Systemstart starten konfigurieren

sudo systemctl enable docker
sudo systemctl start docker

Installationsüberprüfung

Docker-Version prüfen

docker --version
docker compose version

Hello-World-Container ausführen

sudo docker run hello-world

Docker Compose-Einrichtung

Docker Compose installieren

sudo apt install docker-compose

Empfohlene Tools

Tool Zweck
Docker Desktop GUI zur Docker-Verwaltung
Visual Studio Code IDE mit Docker-Erweiterung
Docker Hub Repository für Container-Images

Empfohlene LabEx-Umgebung

LabEx bietet vorkonfigurierte Docker-Umgebungen, die den Einrichtungs- und Lernprozess vereinfachen und Anfängern den Einstieg in die Containerisierungstechnologien erleichtern.

Fehlerbehebung bei häufigen Installationsfehlern

Mögliche Probleme

  • Inkompatible Systemarchitektur
  • Veraltete Systempakete
  • Unzureichende Berechtigungen
  • Netzwerkverbindungsprobleme

Empfohlene Lösungen

  1. Stellen Sie sicher, dass das System die Mindestanforderungen erfüllt.
  2. Aktualisieren Sie die Systempakete regelmäßig.
  3. Überprüfen Sie die Internetverbindung.
  4. Überprüfen Sie die Benutzerberechtigungen.
  5. Konsultieren Sie die offizielle Docker-Dokumentation.

Erste Container-Bereitstellung

Verständnis der Containerbereitstellung

Containerbereitstellungs-Workflow

graph LR A[Bild auswählen] --> B[Bild ziehen] B --> C[Container erstellen] C --> D[Container starten] D --> E[Container verwalten]

Ziehen von Docker-Images

Offizielle Docker Hub-Images

## Ubuntu-Image ziehen
docker pull ubuntu:latest

## Nginx-Webserver-Image ziehen
docker pull nginx:latest

## Python-Entwicklungs-Image ziehen
docker pull python:3.9

Ausführen des ersten Containers

Grundlegende Container-Ausführung

## Ubuntu-Container ausführen
docker run -it ubuntu:latest /bin/bash

## Nginx-Webserver ausführen
docker run -d -p 8080:80 nginx:latest

## Interaktiven Python-Container ausführen
docker run -it python:3.9 python

Container-Verwaltungsbefehle

Befehl Beschreibung
docker ps Liste der laufenden Container
docker ps -a Liste aller Container
docker start <container_id> Angehaltenen Container starten
docker stop <container_id> Laufenden Container stoppen
docker rm <container_id> Container entfernen

Erstellen eines benutzerdefinierten Containers

Dockerfile-Beispiel

## Verwendung des offiziellen Python-Basis-Images
FROM python:3.9

## Arbeitsverzeichnis setzen
WORKDIR /app

## Anwendungsdateien kopieren
COPY . /app

## Abhängigkeiten installieren
RUN pip install flask

## Port freigeben
EXPOSE 5000

## Startbefehl definieren
CMD ["python", "app.py"]

Erstellen und Ausführen des benutzerdefinierten Images

## Docker-Image erstellen
docker build -t myapp:v1 .

## Benutzerdefinierten Container ausführen
docker run -p 5000:5000 myapp:v1

Container-Networking

graph TD A[Container] -->|Portweiterleitung| B[Host-Netzwerk] B -->|Dienste freigeben| C[Externer Zugriff]

Beispiel für Portweiterleitung

## Container-Port 80 auf Host-Port 8080 weiterleiten
docker run -d -p 8080:80 nginx:latest

Container-Volumes

Volumenverwaltung

## Benannte Volume erstellen
docker volume create mydata

## Volume an Container mounten
docker run -v mydata:/data ubuntu:latest

Best Practices

  1. Verwenden Sie offizielle Images.
  2. Minimieren Sie die Imagegröße.
  3. Implementieren Sie mehrstufige Builds.
  4. Verwenden Sie spezifische Image-Tags.
  5. Vermeiden Sie die Ausführung von Containern als root.

Container-Überwachung

## Container-Logs anzeigen

## Ressourcenverbrauch überwachen

## Containerdetails anzeigen

LabEx-Lernumgebung

LabEx bietet interaktive Docker-Labs, die Entwicklern helfen, Container-Bereitstellungstechniken in einer praktischen, geführten Umgebung zu üben.

Erweiterte Bereitstellungstechniken

Technik Beschreibung
Docker Compose Orchestrierung von Multi-Containern
Kubernetes Skalierung und Verwaltung von Containern
Docker Swarm Native Docker-Clustering

Zusammenfassung

Durch die erfolgreiche Durchführung dieses Tutorials haben Sie wertvolle Einblicke in die Docker-Containerisierung gewonnen, die Einrichtung einer Docker-Umgebung erlernt und Ihren ersten Container erfolgreich bereitgestellt. Diese grundlegenden Fähigkeiten werden Sie befähigen, die Möglichkeiten von Docker für komplexere Anwendungsbereitstellungen und -verwaltung in realen Szenarien zu nutzen.