Docker-Images-Grundlagen
Docker-Images verstehen
Docker-Images sind grundlegend für die Containertechnologie. Sie dienen als schreibgeschützte Vorlagen, die eine Reihe von Anweisungen zum Erstellen eines Docker-Containers enthalten. Diese Images verpacken Anwendungscode, Laufzeitumgebung, Bibliotheken, Umgebungsvariablen und Konfigurationsdateien in eine einzige, portierbare Einheit.
Image-Architektur und Komponenten
graph TD
A[Dockerfile] --> B[Basis-Image]
A --> C[Schicht 1: Anwendungscode]
A --> D[Schicht 2: Abhängigkeiten]
A --> E[Schicht 3: Konfiguration]
Komponente |
Beschreibung |
Zweck |
Basis-Image |
Fundamentale Schicht |
Bietet Betriebssystem und grundlegende Umgebung |
Anwendungsschicht |
Benutzerdefinierter Code |
Enthält spezifische Anwendungsdateien |
Abhängigkeitsschicht |
Laufzeitbibliotheken |
Beinhaltet notwendige Softwarepakete |
Erstellen Ihres ersten Docker-Images
Um ein Docker-Image zu erstellen, verwenden Entwickler ein Dockerfile, das die Struktur und den Inhalt des Images definiert. Hier ist ein praktisches Beispiel für eine Python-Webanwendung:
## Erstellen Sie ein neues Verzeichnis für das Projekt
mkdir python-webapp
cd python-webapp
## Erstellen Sie Dockerfile
touch Dockerfile
## Bearbeiten Sie Dockerfile mit minimaler Konfiguration
cat > Dockerfile << EOL
FROM ubuntu:22.04
RUN apt-get update && apt-get install -y python3 python3-pip
WORKDIR /app
COPY . /app
RUN pip3 install flask
EXPOSE 5000
CMD ["python3", "app.py"]
EOL
## Erstellen Sie eine einfache Flask-Anwendung
cat > app.py << EOL
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Docker Image Beispiel'
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
EOL
## Erstellen Sie das Docker-Image
docker build -t python-webapp:v1 .
## Führen Sie den Container aus
docker run -p 5000:5000 python-webapp:v1
Wichtige Eigenschaften von Images
Docker-Images bestehen aus mehreren schreibgeschützten Schichten, die während der Containerlaufzeit gestapelt und zusammengeführt werden. Jede Anweisung in einem Dockerfile erstellt eine neue Schicht, was eine effiziente Speicherung und eine schnelle Containerbereitstellung ermöglicht.
Konzepte der Imageverwaltung
Images können von folgenden Quellen stammen:
- Offizielle Docker Hub-Repositorys
- Benutzerdefinierte Dockerfiles
- Lokale Image-Repositorys
- Private Container-Registries
Die Unveränderlichkeit von Docker-Images gewährleistet konsistente Anwendungsumgebungen über verschiedene Entwicklungs- und Bereitstellungsphasen hinweg.