Einführung
Docker ist zu einem unverzichtbaren Werkzeug für Entwickler geworden, das es ihnen ermöglicht, containerisierte Anwendungen einfach zu erstellen und zu verwalten. Dieses Tutorial führt Sie durch die Einrichtung einer Docker-Entwicklungsumgebung unter macOS oder Windows und stellt sicher, dass Sie über die notwendigen Tools und Kenntnisse verfügen, um Docker-basierte Anwendungen zu erstellen und bereitzustellen.
Grundlagen von Docker verstehen
Was ist Docker?
Docker ist eine Open-Source-Plattform, die es Entwicklern ermöglicht, Anwendungen in einer konsistenten und isolierten Umgebung, sogenannten Containern, zu erstellen, bereitzustellen und auszuführen. Container verpacken eine Anwendung und alle ihre Abhängigkeiten, um sicherzustellen, dass die Anwendung unabhängig von der zugrunde liegenden Infrastruktur zuverlässig und konsistent läuft.
Docker-Container
Ein Docker-Container ist ein leichtgewichtiges, eigenständiges und ausführbares Paket, das alles enthält, was zum Ausführen einer Anwendung benötigt wird – den Code, die Laufzeitumgebung, Systemtools und Bibliotheken. Container sind voneinander und vom Host-Betriebssystem isoliert, wodurch eine konsistente und zuverlässige Umgebung für den Betrieb der Anwendung bereitgestellt wird.
graph LR
A[Anwendung] --> B[Abhängigkeiten]
B --> C[Laufzeitumgebung]
C --> D[Betriebssystem]
D --> E[Docker-Container]
E --> F[Docker-Host]
Docker-Images
Docker-Images sind die Bausteine von Containern. Ein Image ist eine schreibgeschützte Vorlage, die die Anweisungen zum Erstellen eines Docker-Containers enthält. Images werden mithilfe einer Dockerfile erstellt, einer Textdatei, die alle Befehle enthält, die zum Erstellen des Images benötigt werden.
Docker-Registry
Docker Registry ist ein Speicher- und Verteilungssystem für Docker-Images. Die beliebteste öffentliche Registry ist Docker Hub, die eine umfangreiche Sammlung vorgefertigter Images für verschiedene Anwendungen und Dienste bietet.
Docker-Architektur
Docker verwendet eine Client-Server-Architektur, bei der der Docker-Client mit dem Docker-Daemon kommuniziert, der für das Erstellen, Ausführen und Verwalten von Docker-Containern zuständig ist.
| Komponente | Beschreibung |
|---|---|
| Docker-Client | Die Benutzeroberfläche für das Docker-System. Sie ermöglicht Benutzern die Interaktion mit dem Docker-Daemon. |
| Docker-Daemon | Der Hintergrundprozess, der die Docker-Container und -Images verwaltet. |
| Docker-Registry | Ein Repository zum Speichern und Verteilen von Docker-Images. |
| Docker-Networking | Ermöglicht die Kommunikation zwischen Containern und mit der Außenwelt. |
| Docker-Volumes | Bietet eine Möglichkeit, Daten zu speichern, die von und für Docker-Container generiert und verwendet werden. |
Docker auf macOS oder Windows installieren
Docker auf macOS installieren
- Besuchen Sie die Docker-Website und laden Sie Docker Desktop für Mac herunter.
- Führen Sie den Installer aus und folgen Sie den Anweisungen auf dem Bildschirm, um die Installation abzuschließen.
- Nach der Installation erscheint das Docker-Symbol in der Menüleiste, was anzeigt, dass Docker läuft.
Docker auf Windows installieren
- Besuchen Sie die Docker-Website und laden Sie Docker Desktop für Windows herunter.
- Führen Sie den Installer aus und folgen Sie den Anweisungen auf dem Bildschirm, um die Installation abzuschließen.
- Nach der Installation erscheint das Docker-Symbol in der Taskleiste, was anzeigt, dass Docker läuft.
Installation überprüfen
Nach der Installation von Docker können Sie die Installation überprüfen, indem Sie ein Terminal (macOS) oder PowerShell (Windows) öffnen und den folgenden Befehl ausführen:
docker version
Dies zeigt die Version des Docker-Clients und des Docker-Servers (Daemon) an, die auf Ihrem System installiert sind.
Docker Compose installieren
Docker Compose ist ein Werkzeug zum Definieren und Ausführen von Multi-Container-Docker-Anwendungen. Um Docker Compose zu installieren:
- Besuchen Sie das Docker Compose GitHub-Repository und laden Sie die neueste Version von Docker Compose für Ihr Betriebssystem herunter.
- Machen Sie die heruntergeladene Datei ausführbar, indem Sie den folgenden Befehl ausführen (für Linux/macOS):
chmod +x docker-compose - Verschieben Sie die Docker Compose-Binary in einen Verzeichnis in Ihrem Systempfad, z. B.
/usr/local/bin/oder~/bin/.
Jetzt können Sie die Installation überprüfen, indem Sie Folgendes ausführen:
docker-compose version
Dies zeigt die installierte Version von Docker Compose auf Ihrem System an.
Docker-Entwicklungsumgebungen erstellen
Erstellen einer Dockerfile
Eine Dockerfile ist eine Textdatei, die alle Befehle enthält, die zum Erstellen eines Docker-Images benötigt werden. Hier ist ein Beispiel für eine Dockerfile für eine einfache Python-Webanwendung:
FROM python:3.9-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
CMD ["python", "app.py"]
Diese Dockerfile:
- Startet mit dem Basis-Image
python:3.9-slim. - Legt das Arbeitsverzeichnis auf
/appfest. - Kopiert die Datei
requirements.txtin das Arbeitsverzeichnis. - Installiert die Python-Abhängigkeiten, die in
requirements.txtaufgeführt sind. - Kopiert den Anwendungscode in das Arbeitsverzeichnis.
- Gibt den Befehl zum Ausführen der Anwendung (
python app.py) an.
Erstellen eines Docker-Images
Um ein Docker-Image aus der Dockerfile zu erstellen, führen Sie den folgenden Befehl im selben Verzeichnis wie die Dockerfile aus:
docker build -t my-python-app .
Dies erstellt ein Docker-Image mit dem Tag my-python-app.
Ausführen eines Docker-Containers
Um einen Docker-Container aus dem Image my-python-app auszuführen, verwenden Sie den folgenden Befehl:
docker run -p 8080:8080 my-python-app
Dies startet einen neuen Container und ordnet den Port 8080 auf dem Host dem Port 8080 im Container zu.
Entwicklung mit Docker Compose
Docker Compose ist ein Werkzeug zum Definieren und Ausführen von Multi-Container-Docker-Anwendungen. Hier ist ein Beispiel für eine docker-compose.yml-Datei für eine einfache Webanwendung mit einer Datenbank:
version: "3"
services:
web:
build: .
ports:
- 8080:8080
depends_on:
- db
db:
image: postgres:13
environment:
POSTGRES_DB: myapp
POSTGRES_USER: myapp
POSTGRES_PASSWORD: secret
volumes:
- db-data:/var/lib/postgresql/data
volumes:
db-data:
Diese docker-compose.yml-Datei definiert zwei Services: web und db. Der Service web erstellt ein Docker-Image aus dem aktuellen Verzeichnis und ordnet den Port 8080 auf dem Host dem Port 8080 im Container zu. Der Service db verwendet das offizielle PostgreSQL-Image und richtet eine Datenbank für die Anwendung ein.
Um die Anwendung zu starten, führen Sie aus:
docker-compose up -d
Dies startet die Container web und db im Hintergrund.
Zusammenfassung
Mit diesem Tutorial lernen Sie, wie Sie Docker auf Ihrem macOS- oder Windows-Computer installieren, die Grundlagen von Docker verstehen und eine auf Ihre Bedürfnisse zugeschnittene Docker-Entwicklungsumgebung erstellen. Mit diesen Fähigkeiten können Sie Ihren Entwicklungsablauf optimieren und die Vorteile von Docker nutzen, wie z. B. konsistente und reproduzierbare Umgebungen, einfache Bereitstellung und verbesserte Skalierbarkeit.



