Lässt es sich mit cremefarbenem Papier, einer Tönung, mehr Kontrast oder größerer Schrift besser lesen? Wählen Sie Ihre Farben und Ihre Schrift, einmalig für alle Seiten.

Kostenlose Lektion

Container packen eine App mit allem Nötigen

Nach dieser Lektion: Ich kann erklären, was ein Container ist und warum Teams ihn einsetzen.

Lektion, 45 Min.Keine Befehle

Bei mir läuft es doch

Jonas baut den Bestelldienst für einen Online-Shop. Auf seinem Laptop läuft er einwandfrei.

Auf dem Server stürzt er sofort ab. Dort ist eine ältere Python-Version installiert, und eine Bibliothek fehlt.

Teams haben mit diesem Problem ganze Tage verloren. Diese Lektion zeigt das Werkzeug, mit dem die meisten es heute vermeiden.

Am Ende dieser Lektion

Notiz

Ich kann erklären, was ein Container ist und warum Teams ihn einsetzen.

Schlüsselwörter

BegriffWas er bedeutetBeispiel
Abhängigkeitetwas, das Ihre App zum Laufen brauchtPython 3.12, eine Bibliothek
Containereine App samt allem Nötigen, getrennt vom Rest des Rechners
Imagedas fertig gepackte Paket, aus dem ein Container startet
Dockerfileeine Textdatei mit Schritten, die ein Image baut
Registryein gemeinsamer Speicher für Images
Virtuelle Maschineein ganzer Scheinrechner mit eigenem Betriebssystem

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein Container trägt, was die App braucht

Jede App hat Abhängigkeiten: die richtige Python-Version, einige Bibliotheken, einige Einstellungen.

Ein Container packt die App zusammen mit ihren Abhängigkeiten. Er läuft getrennt von allem anderen auf dem Rechner.

So findet die App überall dasselbe Python und dieselben Bibliotheken. Laptop und Server sind nicht mehr verschieden.

Dieselbe App an drei Orten

Wo sie läuftGefundenes PythonBibliothek gefundenErgebnis
Jonas’ Laptop3.12JaLäuft
Server ohne Container3.8NeinStürzt ab
Server mit Container3.12, aus dem ImageJa, aus dem ImageLäuft

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Ein häufiger Fehler

Warnung

Viele denken, ein Container sei eine kleine virtuelle Maschine. Das stimmt nicht. Eine virtuelle Maschine bringt ein ganzes eigenes Betriebssystem mit. Ein Container nutzt das Betriebssystem des Rechners mit und packt nur die App und ihre Abhängigkeiten. Deshalb startet er meist in wenigen Sekunden.

Ein Image entsteht aus einem Dockerfile

Sie packen einen Container nicht von Hand. Sie schreiben ein Dockerfile: eine kurze Liste von Schritten.

Ein Werkzeug liest die Schritte der Reihe nach und baut daraus ein Image. Das Image ist das gepackte Ergebnis. Jeder Container aus diesem Image ist gleich.

Unten schreibt Bash ein echtes Dockerfile und liest es zurück. Lesen Sie jede Zeile und machen Sie dann die Änderung aus dem letzten Kommentar.

Ein Dockerfile schreiben und lesen

Code: bash
mkdir -p bestell-dienst && cd bestell-dienst
printf 'print("Bestelldienst läuft")\n' > app.py
printf 'flask==3.0.3\n' > requirements.txt

cat > Dockerfile <<'EOF'
FROM python:3.12-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY app.py .
CMD ["python", "app.py"]
EOF

# Jede Zeile des Rezepts mit Nummer anzeigen
cat -n Dockerfile

# Von welchem Basis-Image geht es aus?
grep FROM Dockerfile

# Ändern Sie oben python:3.12-slim in python:3.11-slim und drücken Sie erneut auf Ausführen.

Was jede Zeile tut

ZeileWas sie tut
FROM python:3.12-slimStartet von einem Image, das Python 3.12 schon enthält
WORKDIR /appArbeitet im Ordner /app
COPY requirements.txt .Kopiert die Liste der Bibliotheken hinein
RUN pip install -r requirements.txtInstalliert diese Bibliotheken ins Image
COPY app.py .Kopiert den Code der App hinein
CMD ["python", "app.py"]Legt fest, was beim Start eines Containers läuft

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Warum Teams Container einsetzen

Das Team baut das Image einmal. Es kommt in eine Registry, einen gemeinsamen Speicher für Images.

Test-Server und Live-Server holen dasselbe Image. Was die Tests bestanden hat, nutzen auch die Kundinnen und Kunden.

Ist der Shop stark besucht, startet das Team zehn Kopien statt einer. Jede Kopie läuft in wenigen Sekunden.

Was echte Docker-Befehle ausgeben

BefehlAusgabeBedeutung
docker build -t bestellungen:1.4 .naming to docker.io/library/bestellungen:1.4 doneDas Image ist gebaut und heißt bestellungen, Version 1.4
docker push registry.example.com/bestellungen:1.41.4: digest: sha256:9f2c...Das Image liegt jetzt in der Registry
docker run -d bestellungen:1.43b7e1c0a9d42f5e8... (lange Kennung, hier gekürzt)Ein Container ist gestartet; das ist seine Kennung
docker ps3b7e1c0a9d42 bestellungen:1.4 Up 5 secondsEin Container läuft

Die Zellen, die Lernende ausfüllen, bleiben in dieser Vorschau leer.

Sie unterrichten eine Gruppe? Weisen Sie dieses Modul Ihren Studierenden zu, mit Handbuch für Lehrende, automatisch geprüften Aufgaben und einem Lab für jede Person.