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 auf meinem Rechner läuft es doch“-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

Wir erstellen diese Ordner in VS Code, weil der Finder auf dem Mac keinen Ordnernamen erlaubt, der mit einem Punkt (.) beginnt.

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 scikit-learn

# 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 (newer npm blocks its setup script unless allowed)
RUN npm config set allow-scripts=@anthropic-ai/claude-code --location=global \
    && 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

# Simple data analysis using the iris dataset
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.datasets import load_iris

# Load the iris dataset
iris = load_iris()
df = pd.DataFrame(iris.data, columns=iris.feature_names)
df['species'] = iris.target_names[iris.target]

# Display first few rows
print(df.head())

# Summary statistics
print("\nSummary statistics:")
print(df.describe())

# Create histograms
plt.figure(figsize=(10, 6))
plt.hist(df['sepal length (cm)'], bins=20, alpha=0.7, label='Sepal Length')
plt.hist(df['sepal width (cm)'], bins=20, alpha=0.7, label='Sepal Width')
plt.xlabel('Measurement (cm)')
plt.ylabel('Frequency')
plt.title('Iris Sepal Measurements')
plt.legend()
plt.savefig('iris_histogram.png')

Schritt 7: Eine Streamlit-Web-App erstellen

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

st.title("Old Faithful Geyser Data")

# Slider for number of bins
bins = st.slider("Number of bins:", min_value=5, max_value=50, value=30)

# Generate sample data (simulating Old Faithful eruption durations)
np.random.seed(42)
data = np.concatenate([
    np.random.normal(2, 0.5, 100),
    np.random.normal(4.5, 0.5, 150)
])

# Create histogram
fig, ax = plt.subplots()
ax.hist(data, bins=bins, edgecolor='black')
ax.set_xlabel('Eruption Duration (minutes)')
ax.set_ylabel('Frequency')
ax.set_title(f'Histogram with {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 -a

Sie sehen die Ordner, die Sie erstellt haben: .devcontainer/, python/, usw. (-a zeigt auch Ordner an, deren Name mit einem Punkt beginnt)

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("My First Python Docker App")

Schritt 13: Die Dockerfile verstehen (Optional)

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. Hinweis: Mit dieser Dockerfile funktionieren nur Debian-basierte Images wie python:3.12 und python:3.12-slim; Alpine- und Jupyter-Images brauchen eine andere Dockerfile.

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

Pakete, die über pip im Terminal installiert werden (pip install package), 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 plotly
python -c "import plotly; print(plotly.__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 Symbol >< in der unteren linken Ecke 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 - Wenn Ihr Projekt ein GitHub-Repository ist (siehe GitHub Desktop mit Claude Code verwenden), committen und pushen Sie Ihre Änderungen mit GitHub Desktop

Erstellt von Steven Ge am 7. Dezember 2025.