Docker-Grundlagen
Einführung in Docker
Docker ist eine leistungsstarke Plattform zur Software-Containerisierung, die es Entwicklern ermöglicht, Anwendungen in verschiedenen Computing-Umgebungen konsistent zu verpacken, zu verteilen und auszuführen. Als Containertechnologie vereinfacht Docker die Anwendungsbereitstellung und verbessert die Systemeffizienz.
Kernkonzepte
Docker verwendet leichte Container, um Anwendungen und deren Abhängigkeiten zu isolieren. Im Gegensatz zu traditionellen virtuellen Maschinen teilen Container den Kernel des Host-Systems, was sie ressourceneffizienter macht.
graph TD
A[Anwendung] --> B[Docker-Container]
B --> C[Host-Betriebssystem]
C --> D[Hardware]
Hauptkomponenten
Komponente |
Beschreibung |
Docker Engine |
Kerndatenumgebung |
Docker Image |
Schreibgeschützte Vorlage für Container |
Docker Container |
Ausführbare Instanz eines Images |
Dockerfile |
Skript zum Erstellen von Docker-Images |
Installation unter 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=amd64 signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] $(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-Befehle
## Docker-Version prüfen
docker --version
## Image von Docker Hub ziehen
docker pull ubuntu:latest
## Lokale Images auflisten
docker images
## Container ausführen
docker run -it ubuntu:latest /bin/bash
## Laufende Container auflisten
docker ps
## Container stoppen
docker stop container_id
Container-Lebenszyklusverwaltung
Docker bietet ein umfassendes System zur Verwaltung des Container-Lebenszyklus, das es Entwicklern ermöglicht, Container effizient zu erstellen, zu starten, zu stoppen und zu entfernen. Dieser Ansatz unterstützt Workflows für kontinuierliche Integration und Bereitstellung.
Leistung und Effizienz
Container bieten signifikante Vorteile gegenüber herkömmlicher Virtualisierung:
- Schnellere Startzeiten
- Geringerer Ressourcenverbrauch
- Konsistente Umgebung zwischen Entwicklung und Produktion
- Einfache Skalierbarkeit und Portabilität