So erstellen und verwalten Sie Docker-Container effektiv

DockerDockerBeginner
Jetzt üben

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

Einführung

Dieses umfassende Docker-Container-Tutorial bietet Entwicklern und IT-Experten eine grundlegende Anleitung zum Verständnis, zur Installation und Verwaltung von containerisierten Anwendungen. Durch die Erkundung zentraler Container-Konzepte, Installationsverfahren und praktischer Befehle erwerben die Lernenden praktische Fähigkeiten in modernen Software-Bereitstellungstechnologien.

Grundlagen von Docker-Containern

Einführung in die Containertechnologie

Docker-Container stellen einen revolutionären Ansatz für die Softwarebereitstellung und Anwendungsverwaltung dar. Containerisierung ermöglicht es Entwicklern, Anwendungen mit ihrer gesamten Laufzeitumgebung zu verpacken und so eine konsistente Leistung auf verschiedenen Computing-Plattformen sicherzustellen.

Kernkonzepte von Docker-Containern

Docker-Container sind leichte, eigenständige, ausführbare Pakete, die alles enthalten, was zum Ausführen einer Anwendung benötigt wird: Code, Laufzeitumgebung, Systemtools, Bibliotheken und Einstellungen. Im Gegensatz zu traditionellen virtuellen Maschinen teilen Container den Kernel des Hostsystems, was sie effizienter und schneller in der Ausführung macht.

graph TD A[Anwendungskode] --> B[Docker-Container] B --> C[Konsistente Bereitstellung] B --> D[Isolierte Umgebung]

Hauptmerkmale von Containern

Merkmal Beschreibung
Portabilität Konsistente Ausführung in verschiedenen Umgebungen
Leichtgewichtigkeit Minimale Ressourcenbeanspruchung
Skalierbarkeit Einfache Replikation und Skalierung
Isolation Getrennte Anwendungsumgebungen

Installation von Docker-Containern auf Ubuntu 22.04

## 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 | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg

## Stable-Repository einrichten
echo "deb [arch=$(dpatch -s)]  $(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

Grundlegende Docker-Container-Befehle

## Ubuntu-Image herunterladen
docker pull ubuntu:latest

## Interaktiven Container starten
docker run -it ubuntu:latest /bin/bash

## Laufende Container auflisten
docker ps

## Alle Container auflisten
docker ps -a

Anwendungsfälle für Docker-Container

Docker-Container eignen sich ideal für Microservices-Architekturen, Continuous Integration/Continuous Deployment (CI/CD), Cloud-native Anwendungen und die Standardisierung von Entwicklungs-Umgebungen.

Container-Konnektivität

Docker Netzwerkarchitektur

Docker bietet mehrere Netzwerkmodi, die es Containern ermöglichen, miteinander und mit externen Netzwerken zu kommunizieren. Das Verständnis dieser Konnektivitätsmethoden ist entscheidend für eine effektive Containerverwaltung und Anwendungsbereitstellung.

graph LR A[Docker Host] --> B[Bridge-Netzwerk] B --> C[Container 1] B --> D[Container 2] A --> E[Host-Netzwerk] A --> F[Overlay-Netzwerk]

Netzwerktypen in Docker

Netzwerktyp Beschreibung Anwendungsfall
Bridge Standard-Netzwerkmodus Isolierte Containerkommunikation
Host Direkter Hostnetzwerkzugriff Hochleistungs-Szenarien
Overlay Netzwerkkommunikation zwischen Hosts Verteilte Systeme
Macvlan Direkte physische Netzwerkverbindung Netzwerk-spezifische Anforderungen

Erstellen benutzerdefinierter Docker-Netzwerke

## Bridge-Netzwerk erstellen
docker network create --driver bridge my_custom_network

## Verfügbare Netzwerke auflisten
docker network ls

## Netzwerkdetails anzeigen
docker network inspect my_custom_network

Methoden der Containernetzwerk-Konnektivität

## Container mit spezifischem Netzwerk starten
docker run -d --name web_server --network my_custom_network nginx

## Laufenden Container an Netzwerk anbinden
docker network connect my_custom_network existing_container

## Container vom Netzwerk trennen
docker network disconnect my_custom_network existing_container

Portweiterleitung und -freigabe

## Containerport auf Hostport weiterleiten
docker run -p 8080:80 nginx

## Mehrere Ports freigeben
docker run -p 8080:80 -p 443:443 web_application

Zugriff auf die Containershell

## Interaktiver Shell-Zugriff
docker exec -it container_name /bin/bash

## Befehl im laufenden Container ausführen
docker exec container_name ls /app

Kommunikationstechniken zwischen Containern

Container können über folgende Methoden kommunizieren:

  • Gemeinsame Netzwerke
  • Umgebungsvariablen
  • Volume-Mounts
  • Docker Compose-Konfigurationen

Container-Verwaltung

Container-Lebenszyklusverwaltung

Docker-Container haben verschiedene Lebenszyklusphasen, die systematische Verwaltung und Überwachung erfordern. Das Verständnis dieser Phasen ermöglicht eine effiziente Containerbereitstellung und Wartung.

graph LR A[Image ziehen] --> B[Container erstellen] B --> C[Container starten] C --> D[Container läuft] D --> E[Container stoppen] E --> F[Container entfernen]

Container-Lebenszyklusbefehle

Befehl Funktion Beispiel
docker pull Image herunterladen docker pull ubuntu
docker create Container erstellen docker create nginx
docker start Container starten docker start container_id
docker stop Container stoppen docker stop container_id
docker rm Container entfernen docker rm container_id

Container-Ressourcenverwaltung

## Laufende Container mit Ressourcenverbrauch auflisten
docker stats

## Containerressourcen begrenzen
docker run -d --cpus=1 --memory=512m nginx

## Containerressourcen aktualisieren
docker update --cpus=2 --memory=1g container_name

Container-Überwachungsmethoden

## Container-Logs anzeigen
docker logs container_name

## Echtzeit-Log-Überwachung
docker logs -f container_name

## Container-Metadaten anzeigen
docker inspect container_name

Container-Backup und -Wiederherstellung

## Container-Imagesnapshot erstellen
docker commit container_name backup_image

## Container in Tar-Archiv exportieren
docker export container_name > container_backup.tar

## Container aus Archiv importieren
docker import container_backup.tar restored_image

Erweiterte Containerverwaltung

## Nicht verwendete Container bereinigen
docker container prune

## Alle gestoppten Container entfernen
docker rm $(docker ps -a -q)

## Hängende Images bereinigen
docker image prune

Grundlagen der Container-Orchestrierung

Docker Swarm und Kubernetes bieten erweiterte Containerverwaltungsfunktionen für Skalierung, Lastverteilung und automatisierte Bereitstellung über mehrere Hosts.

Zusammenfassung

Docker-Container stellen einen leistungsstarken Ansatz für die Softwarebereitstellung dar und bieten beispiellose Portabilität, Effizienz und Skalierbarkeit. Durch die Beherrschung der Containertechnologie können Entwickler konsistente, isolierte Umgebungen erstellen, die die Anwendungsentwicklung, -prüfung und -workflows in der Produktion über verschiedene Computing-Plattformen hinweg optimieren.