Grundlagen von Docker-Images
Verständnis von Docker-Images
Docker-Images sind grundlegend für die Containertechnologie. Sie dienen als schreibgeschützte Vorlagen, die ein vorkonfiguriertes Betriebssystem und eine Anwendungsumgebung enthalten. Diese Images bestehen aus mehreren Schichten, die das vollständige Dateisystem für einen Container definieren.
Aufbau und Schichten von Images
graph TD
A[Basis-Image] --> B[Anwendungsschicht]
A --> C[Konfigurationsschicht]
A --> D[Abhängigkeitsschicht]
Wichtige Eigenschaften von Docker-Images:
Schichttyp |
Beschreibung |
Beispiel |
Basis-Image |
Fundamentale Betriebssystemschicht |
Ubuntu 22.04 |
Abhängigkeitsschicht |
Benötigte Bibliotheken und Pakete |
Python-Laufzeitumgebung |
Anwendungsschicht |
Tatsächlicher Anwendungscode |
Webanwendung |
Erstellen eines Docker-Images
Hier ist ein praktisches Beispiel für die Erstellung eines Docker-Images für eine Python-Anwendung:
## Erstellen Sie ein neues Verzeichnis für das Projekt
mkdir python-app
cd python-app
## Erstellen Sie die Dockerfile
touch Dockerfile
## Bearbeiten Sie die Dockerfile mit der grundlegenden Konfiguration
echo "FROM ubuntu:22.04
RUN apt-get update && apt-get install -y python3 python3-pip
WORKDIR /app
COPY . /app
RUN pip3 install -r requirements.txt
CMD ['python3', 'app.py']" > Dockerfile
## Erstellen Sie das Docker-Image
docker build -t my-python-app .
Diese Dockerfile demonstriert die wichtigsten Schritte bei der Imageerstellung:
- Auswahl eines Basis-Images (Ubuntu 22.04)
- Installation von System-Abhängigkeiten
- Festlegung des Arbeitsverzeichnisses
- Kopieren der Anwendungsdateien
- Installation der Anwendungsanforderungen
- Definition des Standardbefehls
Befehle zur Imageverwaltung
## Auflisten der lokalen Images
docker images
## Herunterladen eines Images von Docker Hub
docker pull ubuntu:22.04
## Löschen eines Images
docker rmi my-python-app
Docker-Images bieten eine konsistente und reproduzierbare Umgebung auf verschiedenen Computing-Plattformen und ermöglichen eine effiziente Anwendungsbereitstellung und Skalierung.