Ollama server in a docker container

ChatGpt ist zu teuer? Die Lösung: Dein eigener Ollama Server in Docker

KI und LLMs verändern die Datenwelt. Der portable Ollama Server bietet Unternehmen eine kosteneffiziente, flexible Infrastruktur für LLMs – einfach per Docker betrieben.

Künstliche Intelligenz und Large Language Models (LLMs) revolutionieren den Umgang mit Daten. Doch viele Unternehmen stehen vor der Herausforderung, eine kosteneffiziente und flexible Infrastruktur für den Einsatz von LLMs bereitzustellen. Hier kommt der portable Ollama Server ins Spiel – betrieben in Docker. Wir zeigen, wie du ihn direkt nutzen kannst.

Vorteile des Ollama Servers

  • Geringere Kosten: Im Vergleich zur Nutzung von cloudbasierten Diensten wie ChatGPT entfallen bei einem lokalen Server die kontinuierlichen API-Kosten.
  • Größere Modellauswahl: Der Ollama Server unterstützt verschiedene LLMs und ermöglicht die Nutzung von Modellen, die optimal auf individuelle Bedürfnisse zugeschnitten sind.
  • Datensouveränität: Die Daten bleiben lokal, was gerade bei sensiblen Unternehmensdaten ein entscheidender Vorteil ist.
  • Portabilität: Durch die Containerisierung in Docker lässt sich der Ollama Server leicht portieren und sowohl lokal, als auch in vielen Cloud-Umgebungen ausführen.

Einrichtung der Docker-basierten Infrastruktur

Die Installation des Ollama Servers in einer Docker-Umgebung bietet eine flexible und portable Lösung, die einfach in bestehende Systeme integriert werden kann.

Wir zeigen dir die passende Config, damit du den Server sofort nutzen kannst.

Docker-Compose Config

version: '3.8'

services:
  ollama:
    build:
      context: .
      dockerfile: Dockerfile
    container_name: ollama
    ports:
      - "11434:11434"
    restart: always

Dockerfile für den Ollama Server

FROM ollama/ollama:latest

COPY run.sh /run.sh
RUN chmod +x /run.sh

ENTRYPOINT ["/run.sh"]

Start-Skript

#!/bin/bash

echo "Starting Ollama server..."
ollama serve &
SERVE_PID=$!

echo "Waiting for Ollama server to be active..."
while ! ollama list | grep -q 'NAME'; do
  sleep 1
done

ollama pull llama3.2

wait $SERVE_PID

Diese Konfiguration sorgt dafür, dass der Ollama Server gestartet wird und automatisch das gewünschte Modell (z. B. llama3.2) herunterlädt.

Nutzung eines LLMs

Um mit dem LLM zu interagieren, kannst du dich per CMD im Container mit dem LLM verbinden, sobald der Container gestartet wurde. Die Nutzung eines LLMs geht mittels:

docker exec -it <CONTAINER_ID> ollama run llama3.2

Alternativ können HTTP-Anfragen über den Port 11434 an den Ollama-Server gestellt werden. Die API-Doc hierfür ist im Ollama GitHub Project zu finden.

Potential für mehr Performance

Der vorgestellte Docker-Container nutzt die CPU für die Verarbeitung von LLM-Operationen. Um die Verarbeitungsgeschwindigkeit noch zu verbessern, kann der Container auf die Nutzung der GPU angepasst werden, sofern auf dem Host eine entsprechend performante GPU verfügbar ist.

  • Installiere das NVIDIA Container Toolkit: Stelle sicher, dass das Host-System korrekt eingerichtet ist, indem du das NVIDIA Container Toolkit installierst und konfigurierst.
  • Verwende ein CUDA-kompatibles Docker-Image: Nutze ein NVIDIA CUDA-Base-Image als Grundlage im Dockerfile, um GPU-Unterstützung sicherzustellen, wie zum Beispiel das ollama/ollama Image aus dem obigen Beispiel.
  • Starte den Container mit GPU-Zugriff: Verwende beim Start des Containers die Option --gpus all, um die GPU des Hosts für den Ollama-Server verfügbar zu machen.

Fazit

Die Nutzung des Ollama Servers in Docker bietet eine überzeugende Alternative zu cloudbasierten Diensten wie ChatGpt. Geringere Kosten, eine größere Modellauswahl und volle Datensouveränität machen diese Lösung besonders attraktiv für Unternehmen, die LLMs effizient und sicher einsetzen möchten.

Wie ein solches portables LLM für effizientes Datenmapping genutzt werden kann, zeigen wir im nächsten Blogbeitrag.

Marc Mai

Über MICH

Marc Mai hat Wirtschaftsinformatik (M.Sc.) studiert und unterstützt seit 2013 bei doubleSlash Unternehmen auf ihrer Data-Driven Journey. Als Data Architect entwickelt er branchenübergreifend End-to-End-Lösungen für Data Enablement – von der Konzeption moderner Data Lakehouses über intelligente Datenintegration bis zur Entwicklung von Data Products, die echten Business Value generieren. Marc Mai verbindet technische Expertise in Backend-Architekturen mit strategischem Verständnis für Data Culture. Seine Mission: Organisationen befähigen, Daten als strategischen Wettbewerbsvorteil zu nutzen und KI-gestützte Innovationen voranzutreiben.

Alle Beiträge von Marc Mai

Mehr erfahren

Weitere Infos auf unserer Website und in unserem Newsletter

Pfeil hoch