KI-Modelle mit Docker-Containern bereitstellen (Leitfaden 2026)

Euer Data-Science-Team hat ein Modell trainiert, das auf seinen Laptops läuft. Jetzt möchte ein Product Manager es bis zum Quartalsende in der App live haben, und beide Seiten können sich nicht einigen, wie es ausgeliefert werden soll. Genau diese Lücke, zwischen einem Modell, das in einem Notebook läuft, und einem, das echte Nutzer bedient, ist der Punkt, an dem die meisten KI-Funktionen stecken bleiben.

Um KI-Modelle mit Docker bereitzustellen, verpackt ihr das Modell, seine Laufzeitumgebung und jede Abhängigkeit in ein einziges Container-Image, stellt es hinter einer Inferenz-API bereit und lasst dieses Image auf einer Container-Plattform wie Kubernetes oder einem verwalteten Container-Dienst laufen. Docker macht das Modell reproduzierbar und portabel, sodass es sich auf einem Laptop, in Staging und in Produktion gleich verhält, unabhängig von der Python- oder CUDA-Version des Hosts.

Dieser Leitfaden zeigt Schritt für Schritt, wie das funktioniert, was es an Entwicklerzeit kostet, wann ein Container das falsche Werkzeug ist und welche konkreten Fehler wir Teams machen sehen, wenn sie ein Modell zum ersten Mal in Produktion bringen.

Was bedeutet es, ein KI-Modell mit Docker bereitzustellen?

Ein Docker-Container ist eine leichtgewichtige, isolierte Umgebung, die euer Modell zusammen mit allem bündelt, was es zum Laufen braucht: den Python-Interpreter, das ML-Framework wie PyTorch, TensorFlow oder ONNX Runtime, die Systembibliotheken und die Modellgewichte selbst. Ihr beschreibt diese Umgebung einmal in einer Textdatei namens Dockerfile, baut sie zu einem Image und lasst Kopien dieses Images als Container laufen.

Ein KI-Modell mit Docker bereitzustellen bedeutet, euer trainiertes Modell in eines dieser Images zu verwandeln und es als Dienst zu betreiben, den andere Systeme aufrufen. Statt von jedem Server zu verlangen, dass die richtige Python-Version und die CUDA-Treiber installiert sind, liefert ihr ein in sich geschlossenes Artefakt, das sie bereits enthält. Der Host braucht nur Docker.

Das Ergebnis ist ein Inferenzdienst: eine kleine API, die eine Eingabe entgegennimmt (eine Zeichenkette, ein Bild, eine Zeile Merkmale), sie durch das Modell laufen lässt und eine Vorhersage zurückgibt. Alles, was das Modell braucht, reist im Inneren des Images mit.

Warum KI-Modelle mit Docker statt auf einem nackten Server bereitstellen?

Vier Gründe tauchen in fast jedem Projekt auf.

Reproduzierbarkeit. Ein ML-Modell reagiert empfindlich auf Bibliotheksversionen. Ein gegen PyTorch 2.1 trainiertes Modell kann sich unter 2.3 anders verhalten oder gar nicht laden. Das Image fixiert jede Version, sodass das Modell, das ihr getestet habt, auch das Modell ist, das läuft.

Abhängigkeitsisolation. KI-Workloads ziehen schwere, widersprüchliche Abhängigkeiten nach sich: CUDA, cuDNN, bestimmte NumPy-Builds. Container halten den Stack jedes Modells getrennt, sodass zwei Modelle mit unterschiedlichen Anforderungen auf demselben Host laufen, ohne sich in die Quere zu kommen.

Parität über Umgebungen hinweg. Das klassische Problem «bei mir läuft es doch» verschwindet. Dasselbe Image läuft auf dem Laptop eines Entwicklers, auf einem Staging-Cluster und in Produktion, was Fehler reproduzierbar und Rollbacks sofort möglich macht.

Skalierung und Wiederherstellung. Wenn der Traffic steigt, startet die Plattform weitere Kopien des Images. Wenn ein Container abstürzt, wird er in Sekunden aus demselben bekannten, funktionierenden Artefakt ersetzt.

Wie stellt man ein KI-Modell mit Docker Schritt für Schritt bereit?

Der Weg von einem trainierten Modell zu einem laufenden Dienst besteht aus sechs Schritten. Das Diagramm unten zeigt die gesamte Abfolge, und die Abschnitte danach erklären die Stellen, an denen Teams stolpern.

Sechs Schritte, um ein KI-Modell mit Docker bereitzustellen, vom Verpacken des Modells bis zum Monitoring und Skalieren

1. Verpackt das Modell. Exportiert die trainierten Gewichte in ein portables Format wie eine .pt- oder .onnx-Datei und schreibt ein kleines Inferenzskript, das die Gewichte lädt und eine Predict-Funktion bereitstellt.

2. Schreibt das Dockerfile. Wählt ein Basis-Image. Für CPU-Inferenz hält ein schlankes Python-Image die Größe gering. Für GPU-Inferenz startet ihr von einem offiziellen NVIDIA-CUDA-Basis-Image, damit die Treiber zusammenpassen. Installiert nur die Bibliotheken, die das Modell zur Inferenzzeit braucht, nicht den vollständigen Trainings-Stack.

3. Baut das Image. Führt den Build aus, der das Dockerfile abarbeitet und Modell, Laufzeit und Abhängigkeiten in ein einziges versioniertes Artefakt einbrennt.

4. Ladet es in eine Registry. Speichert das Image in einer privaten Container-Registry wie Amazon ECR, Google Artifact Registry oder Azure Container Registry, aus der eure Produktionsplattform es ziehen kann.

5. Stellt es hinter einer API bereit. Verpackt das Modell in einen Webserver wie FastAPI oder TorchServe, damit andere Dienste Anfragen senden und Vorhersagen über HTTP empfangen können.

6. Überwacht und skaliert. Verfolgt Latenz, Fehlerraten und, bei GPU-Workloads, den Speicher. Fügt Repliken hinzu, wenn der Traffic wächst, und rollt auf das vorherige Image-Tag zurück, wenn ein neues Modell sich falsch verhält.

# CPU-Inferenz-Image für ein PyTorch-Modell, bereitgestellt mit FastAPI
FROM python:3.11-slim

WORKDIR /app

# Nur Inferenz-Abhängigkeiten installieren, nicht den Trainings-Stack
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

# Modellgewichte und Inferenzcode kopieren
COPY model/ ./model/
COPY app.py .

# Eine Anfrage rein, eine Vorhersage raus
EXPOSE 8000
CMD ["uvicorn", "app:app", "--host", "0.0.0.0", "--port", "8000"]

Für ein GPU-Modell ist die einzige bedeutsame Änderung das Basis-Image. Tauscht python:3.11-slim gegen ein nvidia/cuda-Image und installiert den GPU-Build eures Frameworks. Der Anwendungscode bleibt gleich.

CPU- oder GPU-Container: welchen braucht euer Modell?

Nicht jedes Modell braucht in Produktion eine GPU, und GPUs sind der größte einzelne Kostenpunkt in den meisten KI-Bereitstellungen. Die Faustregel lautet, den Container am realen Latenzbudget des Modells auszurichten, nicht an der Hardware, auf der ihr trainiert habt.

Faktor
CPU-Container
GPU-Container
Faktor

Am besten für

CPU-Container

Kleinere Modelle, Textklassifikation, tabellarische Modelle, geringes Anfragevolumen

GPU-Container

Große Sprachmodelle, Bild- oder Videomodelle, hoher Durchsatz

Faktor

Basis-Image

CPU-Container

python:slim, etwa 150 MB

GPU-Container

nvidia/cuda, 1 bis 3 GB

Faktor

Kosten

CPU-Container

Niedrig, läuft auf Standard-Compute

GPU-Container

Hoch, benötigt stundenweise abgerechnete GPU-Instanzen

Faktor

Einrichtungsaufwand

CPU-Container

Minimal

GPU-Container

NVIDIA Container Toolkit plus passende Treiber

Faktor

Typische Eignung

CPU-Container

Modelle, bei denen die CPU-Latenz akzeptabel ist

GPU-Container

Wenn CPU-Inferenz für den Nutzer zu langsam ist

Docker gegenüber Serverless gegenüber verwalteten Modell-Endpunkten

Docker ist nicht der einzige Weg, ein Modell auszuliefern, und nicht immer der günstigste. So vergleichen sich die drei gängigen Optionen, und das Diagramm nach der Tabelle macht daraus eine schnelle Entscheidung.

Faktor
Docker + Orchestrierung
Serverless-Container
Verwalteter Endpunkt
Faktor

Kontrolle

Docker + Orchestrierung

Voll

Serverless-Container

Mittel

Verwalteter Endpunkt

Gering

Faktor

Betriebsaufwand

Docker + Orchestrierung

Am höchsten

Serverless-Container

Mittel

Verwalteter Endpunkt

Am geringsten

Faktor

Kostenmodell

Docker + Orchestrierung

Zahlung für laufende Instanzen

Serverless-Container

Zahlung pro Anfrage, skaliert auf null

Verwalteter Endpunkt

Zahlung pro Aufruf oder pro Stunde

Faktor

Kaltstarts

Docker + Orchestrierung

Keine, sobald in Betrieb

Serverless-Container

Können bei großen Images Sekunden dauern

Verwalteter Endpunkt

Selten

Faktor

Am besten wenn

Docker + Orchestrierung

Stetiger Traffic, individuelle oder GPU-Modelle

Serverless-Container

Stoßweiser oder gelegentlicher Traffic

Verwalteter Endpunkt

Nutzung eines gehosteten Foundation-Modells

Entscheidungsbaum für die Wahl zwischen einem verwalteten Endpunkt, einem Serverless-Container und Docker mit Orchestrierung für ein KI-Modell

Wann ist Docker die falsche Wahl für die KI-Bereitstellung?

Container sind der Standard für individuelle Modelle, aber sie sind nicht kostenlos, und es gibt Fälle, in denen es ein Fehler ist, zuerst zu Docker zu greifen.

Ihr ruft nur ein gehostetes Modell auf. Wenn eure Funktion ein Wrapper um die API eines gehosteten Foundation-Modells ist, gibt es kein Modell zum Containerisieren. Ruft die API aus eurem bestehenden Backend auf und spart euch die zusätzliche Schicht.

Der Traffic ist selten und unvorhersehbar. Ein Modell, das eine Handvoll Anfragen pro Tag bedient, rechtfertigt keinen dauerhaft laufenden Container und dessen Leerlaufkosten. Ein Serverless-Container oder ein verwalteter Endpunkt, der auf null skaliert, ist meist günstiger, solange ihr einen Kaltstart in Kauf nehmen könnt.

Das Image ist riesig und die Latenz ist kritisch. GPU-Images mit vollständigen CUDA-Stacks können mehrere Gigabyte umfassen. Wenn ein kalter Pull Sekunden hinzufügt, die ihr euch nicht leisten könnt, braucht ihr warme Pools und vorab gezogene Images, was Kosten und Komplexität erhöht.

Niemand ist für die Plattform verantwortlich. Docker plus Kubernetes ist echte Infrastruktur. Wenn ihr niemanden habt, der sich um Skalierung, Sicherheits-Patches und Kostenkontrolle kümmert, wird euch ein verwalteter Dienst besser dienen, bis ihr jemanden habt. Hier von Anfang an ehrlich zu sein, spart eine Menge Geld.

Wie Redwerk KI-Modelle für Mid-Market-Teams bereitstellt

Den meisten Teams, die zu uns kommen, fehlt nicht das Modell. Sie haben einen funktionierenden Prototyp und einen ins Stocken geratenen Weg in die Produktion, meist weil die Leute, die das Modell trainiert haben, nicht die Leute sind, die die Infrastruktur betreiben. Genau diese Lücke füllen wir.

Redwerk stellt Ingenieure bereit, die den konkreten Stack bereits kennen, ob PyTorch auf CUDA, ONNX Runtime oder einen Python-Inferenzdienst hinter Kubernetes, sodass wir in Tagen produktiv sind, statt Wochen damit zu verbringen, uns in euer Tooling einzuarbeiten. In einem KI-Entwicklungsprojekt haben wir eine KI-gestützte Optimierungsplattform mitten im Bau übernommen und bis zum Produktions-Launch geführt und dabei die Containerisierung, die Inferenz-API und das Monitoring erledigt, die das ursprüngliche Team noch nicht erreicht hatte.

Wir tun das auch, ohne eine fertige Spezifikation zu verlangen. Wenn ihr das benötigte Ergebnis kennt, aber nicht die genaue Architektur, erarbeiten wir sie mit euch und halten euch die ganze Zeit auf dem Laufenden, was wichtig ist, wenn die Leute, die die Arbeit freigeben, nicht die sind, die das Dockerfile lesen.

Wenn euer Stack .NET ist, seht euch .NET Core gegenüber .NET Framework für Docker-Container für die Wahl der Laufzeit an. Wenn ihr ein Senior-Team wollt, das bereits weiß, wie man Modelle in Produktion bringt, so baut und implementiert Redwerk KI in SaaS-Produkte.

FAQ: KI-Modelle mit Docker bereitstellen

Wie lange dauert es, ein KI-Modell zu containerisieren?

Für ein einzelnes Modell mit einem klaren Inferenzpfad braucht ein Senior-Ingenieur für einen produktionsreifen containerisierten Dienst üblicherweise zwei bis vier Wochen, einschließlich der API, der Registry-Einrichtung und eines grundlegenden Monitorings. Ein grober Proof of Concept kann in ein bis zwei Tagen laufen, aber der Abstand zwischen «läuft in einem Container» und «sicher in Produktion» ist der Punkt, an dem die meiste Zeit draufgeht.

Brauche ich Kubernetes, um KI-Modelle in Docker auszuführen?

Nein. Kubernetes lohnt sich, wenn ihr viele Modelle betreibt oder automatische Skalierung und Selbstheilung braucht. Für den Anfang ist ein einzelner Container auf einem verwalteten Container-Dienst wie AWS App Runner, Google Cloud Run oder Azure Container Apps einfacher und oft ausreichend. Ihr könnt später zu Kubernetes wechseln, ohne das Image zu ändern.

Wie groß ist ein typisches Docker-Image eines KI-Modells?

CPU-Images auf einer schlanken Python-Basis sind oft 200 MB bis 1 GB groß. GPU-Images, die das CUDA-Toolkit enthalten, liegen üblicherweise bei 3 bis 8 GB, und die Modellgewichte kommen obendrauf. Mehrstufige Builds und schlanke Basis-Images sind die wichtigsten Hebel, um die Größe gering zu halten.

Kann ich GPU-Inferenz in einem Docker-Container ausführen?

Ja. Mit dem auf dem Host installierten NVIDIA Container Toolkit können Container direkt auf die GPU zugreifen. Ihr startet von einem NVIDIA-CUDA-Basis-Image, installiert den GPU-Build eures Frameworks und startet den Container mit aktiviertem GPU-Zugriff. Der Modellcode ändert sich zwischen CPU und GPU nicht.

Sieh, wie Redwerk die Kernentwicklung einer KI-Optimierungsplattform übernahm und sie bis zum erfolgreichen Produkt-Launch führte

Bitte geben Sie Ihre Geschäfts-E-Mail-Adresse ein ist keine Geschäfts-E-Mail