Docker-Grundlagen
Einführung in Docker und Containertechnologie
Docker ist eine leistungsstarke Plattform für die Containerisierung, die es Entwicklern ermöglicht, Anwendungen konsistent in verschiedenen Computing-Umgebungen zu verpacken, zu verteilen und auszuführen. Als wichtiges Werkzeug in der modernen Softwarebereitstellung vereinfacht Docker den Prozess der Erstellung, Verwaltung und Skalierung von Anwendungen.
Kernkonzepte von Docker
graph TD
A[Docker Image] --> B[Docker Container]
A --> C[Dockerfile]
B --> D[Container Runtime]
Docker führt mehrere grundlegende Konzepte ein:
Konzept |
Beschreibung |
Docker Image |
Nur-Leseversion, die Anwendungscode und Abhängigkeiten enthält |
Docker Container |
Ausführbare Instanz eines Images |
Dockerfile |
Textdatei, die Anweisungen zur Erstellung des Images enthält |
Docker Registry |
Repository zum Speichern und Teilen von 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 überprüfen
## Image von Docker Hub ziehen
## Verfügbare Images auflisten
## Container starten
## Laufende Container auflisten
## Container stoppen
Praktisches Beispiel: Ausführung einer einfachen Webanwendung
## Nginx-Image ziehen
docker pull nginx:latest
## Nginx-Container starten
docker run -d -p 8080:80 nginx:latest
## Container-Status überprüfen
docker ps
Dieses Beispiel zeigt, wie man mit Docker schnell einen Webserver bereitstellt und verdeutlicht die Einfachheit und Effizienz der Softwarebereitstellung.