Startseite

Python-Programmierung in VS Code über Docker-Container

Haben Sie schon einmal versucht, Ihren Python-Code mit einem Kollegen zu teilen, nur um dann Stunden mit dem Debuggen von „aber es funktioniert auf meinem Rechner”-Problemen zu verbringen? Docker-Container sind wie Frachtcontainer für Code – sie verpacken Ihre Python-Umgebung, Bibliotheken und Abhängigkeiten in eine versiegelte Box, die überall gleich funktioniert. Außerdem erhalten Sie Zugang zu Zehntausenden von vorgefertigten Images auf Docker Hub, wo Softwareentwickler fertige Umgebungen veröffentlichen und Ihnen den Schmerz manueller Softwareinstallation ersparen. Dieses Tutorial zeigt Ihnen, wie Sie Python in einer isolierten, reproduzierbaren Umgebung mit VS Code und Docker Desktop ausführen.

Wichtige Konzepte

Was Sie benötigen

Schritt 1: Docker Desktop installieren

Schritt 2: Dev Containers-Erweiterung installieren

Schritt 3: Python-Projektordner erstellen

Schritt 4: Die Dockerfile erstellen

# Choose the official Python slim image
FROM python:3.12-slim

# 1. Install system dependencies
RUN apt-get update && apt-get install -y \
    git curl build-essential && \
    rm -rf /var/lib/apt/lists/*

# 2. Install Python packages for data science and web apps
RUN pip install --no-cache-dir \
    pandas matplotlib seaborn streamlit jupyter

# 3. Install Node.js LTS from NodeSource
RUN curl -fsSL https://deb.nodesource.com/setup_lts.x | bash - \
    && apt-get install -y nodejs \
    && npm install -g npm@latest

# 4. Install Claude Code globally
RUN npm install -g @anthropic-ai/claude-code

# 5. Expose Streamlit port
EXPOSE 8501

Schritt 5: Die Dev Container-Konfiguration erstellen

{
  "name": "Python in Docker",
  "build": {
    "dockerfile": "Dockerfile"
  },
  "customizations": {
    "vscode": {
      "extensions": [
        "ms-python.python",
        "ms-python.debugpy"
      ]
    }
  },
  "forwardPorts": [8501],
  "postCreateCommand": "python3 --version"
}

Schritt 6: Ein Python-Datenanalyse-Skript erstellen

# Einfache Datenanalyse mit dem Iris-Datensatz
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris

# Lade den Iris-Datensatz
iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['species'] = iris.target

# Zeige die ersten Zeilen an
print(df.head())

# Zusammenfassende Statistiken
print("\nZusammenfassende Statistiken:")
print(df.describe())

# Erstelle Histogramme
plt.figure(figsize=(10, 6))
plt.hist(df['sepal length (cm)'], bins=20, alpha=0.7, label='Kelchblattlänge')
plt.hist(df['sepal width (cm)'], bins=20, alpha=0.7, label='Kelchblattbreite')
plt.xlabel('Messung (cm)')
plt.ylabel('Häufigkeit')
plt.title('Iris Kelchblatt-Messungen')
plt.legend()
plt.show()

Schritt 7: Eine Streamlit-Web-App erstellen

import streamlit as st
import numpy as np
import matplotlib.pyplot as plt

st.title("Old Faithful Geysir-Daten")

# Schieberegler für die Anzahl der Bins
bins = st.slider("Anzahl der Bins:", min_value=5, max_value=50, value=30)

# Generiere Beispieldaten (simuliert Old Faithful Ausbruchsdauern)
np.random.seed(42)
data = np.concatenate([
    np.random.normal(2, 0.5, 100),
    np.random.normal(4.5, 0.5, 150)
])

# Erstelle Histogramm
fig, ax = plt.subplots()
ax.hist(data, bins=bins, edgecolor='black')
ax.set_xlabel('Ausbruchsdauer (Minuten)')
ax.set_ylabel('Häufigkeit')
ax.set_title(f'Histogramm mit {bins} Bins')

st.pyplot(fig)

Schritt 8: Im Container erneut öffnen

Schritt 9: Die Container-Umgebung verstehen

Jetzt programmieren Sie innerhalb eines Linux-Containers. Lassen Sie uns erkunden, was das bedeutet.

pwd

Sie sehen /workspaces/python-docker-demo – das ist Ihr Projektordner innerhalb des Containers.

ls

Sie sehen die Ordner, die Sie erstellt haben: .devcontainer/, python/, usw.

cd ..
ls

Sie sehen nur python-docker-demo/ – der Container ist isoliert. Sie können nicht auf die anderen Ordner, den Desktop oder die Dokumente Ihres Computers zugreifen. Diese Isolation stellt sicher, dass Ihre Python-Umgebung sauber und reproduzierbar ist.

cd python-docker-demo

Schritt 10: Python-Code Zeile für Zeile ausführen

Der Container hat Python mit Data-Science-Paketen vorinstalliert. Führen wir das Analyseskript aus.

Schritt 11: Die Streamlit-App ausführen

Das Projekt enthält eine Demo-Streamlit-App, die ein interaktives Histogramm erstellt.

cd python
streamlit run app.py

Schritt 12: Eine einfache Änderung vornehmen

Lassen Sie uns die App modifizieren, um zu sehen, wie Entwicklung funktioniert.

st.title("Meine erste Python-Docker-App")

Schritt 13: Die Dockerfile verstehen (Optional)

Lassen Sie uns untersuchen, wie die Dockerfile Ihre Umgebung konfiguriert.

Wichtige Teile:

Andere Python-Images, die Sie verwenden können:

Nach der Änderung des Basis-Images müssen Sie den Container neu erstellen, um die Änderungen anzuwenden.

Schritt 14: Python-Pakete im Docker-Image installieren (Optional)

Pakete, die über pip im Terminal installiert werden (pip install paket), sind temporär und verschwinden, wenn Sie den Container neu erstellen. Um Pakete permanent zu machen, fügen Sie sie zur Dockerfile hinzu.

RUN pip install --no-cache-dir \
    pandas matplotlib seaborn streamlit jupyter scikit-learn
import sklearn
print(sklearn.__version__)

Wenn die Version ohne Fehler angezeigt wird, ist das Paket dauerhaft installiert.

Nächste Schritte

Fehlerbehebung

Workflow-Überblick

Diese Einrichtung gibt Ihnen eine professionelle Python-Entwicklungsumgebung:

Täglicher Workflow

Sobald alles eingerichtet ist, hier Ihre tägliche Routine:

  1. Docker Desktop starten - Öffnen Sie die App und warten Sie auf den grünen Statusanzeiger (Docker muss laufen)
  2. VS Code öffnen - Starten Sie VS Code und öffnen Sie Ihren Projektordner
  3. Im Container erneut öffnen - Falls nicht bereits im Container, klicken Sie auf das grüne Symbol (unten links) und wählen Sie Reopen in Container
  4. Code schreiben und ausführen - Bearbeiten Sie .py-Dateien, führen Sie sie Zeile für Zeile mit Shift+Enter aus, oder führen Sie Apps mit streamlit run app.py aus
  5. Ihre Arbeit speichern - Ihre Code-Dateien (.py, .ipynb) werden auf Ihrem Computer gespeichert und bleiben über Sitzungen hinweg erhalten
  6. Committen und pushen - Verwenden Sie GitHub Desktop, um Ihre Änderungen zu committen und in das Repository zu pushen

Erstellt von Steven Ge am 7. Dezember 2025.