Docker ist eine Open-Source-Plattform, die das Erstellen, Verteilen und Ausführen von Anwendungen in Containern ermöglicht. Container sind leichtgewichtige, eigenständige und standardisierte Softwarepakete, die alles enthalten, was zur Ausführung einer Anwendung notwendig ist, einschließlich Code, Laufzeit, Systemtools, Bibliotheken und Einstellungen.
Ein Container ist eine standardisierte Einheit der Software, die den gesamten Code und alle Abhängigkeiten enthält, die zur Ausführung der Anwendung erforderlich sind. Container nutzen die Virtualisierungsfunktionen des Betriebssystems, um Prozesse in isolierten Benutzerbereichen auszuführen.
Docker verwendet eine Client-Server-Architektur und besteht aus den folgenden Hauptkomponenten:
Der Docker-Daemon ist ein Hintergrundprozess, der API-Anfragen empfängt und Docker-Objekte wie Container, Images, Netzwerke und Volumes verwaltet.
Die Docker CLI ist das primäre Werkzeug zur Interaktion mit Docker. Benutzer können damit Container erstellen, starten, stoppen und verwalten sowie Docker-Images erstellen und bereitstellen.
Docker-Registries sind Orte, an denen Docker-Images gespeichert werden. Die bekannteste Registry ist der Docker Hub, aber es gibt auch private Registries.
Ein typischer Docker-Workflow umfasst folgende Schritte:
1. Erstellen eines Docker-Images:
Dockerfile:
# Base image
FROM ubuntu:20.04
# Install dependencies
RUN apt-get update && apt-get install -y python3 python3-pip
# Copy application files
COPY . /app
# Set the working directory
WORKDIR /app
# Install Python dependencies
RUN pip3 install -r requirements.txt
# Command to run the application
CMD ["python3", "app.py"]
Befehl:
docker build -t my-python-app .
Ausgabe:
Sending build context to Docker daemon 3.072kB
Step 1/6 : FROM ubuntu:20.04
---> 4e2eef94cd6b
Step 2/6 : RUN apt-get update && apt-get install -y python3 python3-pip
---> Using cache
---> 9b53d9b919f9
Step 3/6 : COPY . /app
---> Using cache
---> a1c0d830bdeb
Step 4/6 : WORKDIR /app
---> Using cache
---> 7f3d5e10d8a7
Step 5/6 : RUN pip3 install -r requirements.txt
---> Using cache
---> b1e7f9c8e872
Step 6/6 : CMD ["python3", "app.py"]
---> Using cache
---> 83be5441286f
Successfully built 83be5441286f
Successfully tagged my-python-app:latest
2. Verwalten des Docker-Images:
Befehl:
docker push my-python-app
3. Bereitstellen und Ausführen des Containers:
Befehl:
docker run -d -p 5000:5000 my-python-app
Ausgabe:
Unable to find image 'my-python-app:latest' locally
latest: Pulling from library/my-python-app
Digest: sha256:57a5274c1d6b88e4ff760a48ff0fcd67a3e78028edc8e8e3f5e3ec56f9a127c6
Status: Downloaded newer image for my-python-app:latest
a3b74fbdcb98b11f823eb6764f5bcd8e92a1d15bde5c6852e47a7bc0a27c3d49
Docker revolutioniert die Art und Weise, wie Anwendungen entwickelt, bereitgestellt und betrieben werden. Durch die Containerisierung können Entwickler sicherstellen, dass ihre Anwendungen in jeder Umgebung konsistent und zuverlässig ausgeführt werden. Docker bietet eine leistungsstarke und flexible Plattform, die den gesamten Lebenszyklus von Anwendungen unterstützt, von der Entwicklung über das Testen bis hin zur Produktion.
Im nächsten Kapitel wird die Installation und Konfiguration von Docker behandelt.