Ollama draaien in Docker geeft je een schone, herhaalbare opzet die je eenvoudig verplaatst tussen je laptop, een server of de cloud. In plaats van Ollama direct op je systeem te installeren, draait het netjes geisoleerd in een container.
Waarom Ollama in Docker?
Docker pakt Ollama en al zijn afhankelijkheden in een container. Dat heeft voordelen: je systeem blijft schoon, je opzet is overdraagbaar, en je kunt meerdere diensten netjes naast elkaar draaien. Op een server is dit vaak de standaardmanier om software uit te rollen.
Wanneer Docker, wanneer niet?
Op je persoonlijke laptop is de gewone Ollama-installatie vaak eenvoudiger. Op een server, of als je Ollama met andere diensten combineert, is Docker meestal de betere keuze vanwege isolatie en herhaalbaarheid.
De Ollama-container starten
De officiele image heet ollama/ollama. Je start hem met een volume voor modelopslag, zodat gedownloade modellen niet verdwijnen als de container herstart:
docker run -d -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
Het benoemde volume ollama bewaart je modellen, de poort 11434 maakt de API bereikbaar, en de naam ollama maakt de container makkelijk te beheren.
Vergeet het volume nooit
Zonder het volume verlies je al je gedownloade modellen wanneer de container wordt verwijderd of opnieuw opgebouwd. Voeg de vlag -v ollama:/root/.ollama dus altijd toe, anders moet je elke keer alles opnieuw downloaden.
GPU-versnelling inschakelen
Heb je een NVIDIA-videokaart, dan wil je die in Docker benutten. Daarvoor installeer je de NVIDIA Container Toolkit (versie 1.16 of nieuwer) en voeg je de --gpus all-vlag toe aan je startcommando.
GPU inschakelen in Docker
- Installeer de NVIDIA Container Toolkit op je host volgens de NVIDIA-documentatie.
- Configureer de Docker-runtime met
sudo nvidia-ctk runtime configure --runtime=docker. - Herstart de Docker-dienst met
sudo systemctl restart dockerzodat de toolkit wordt herkend. - Start Ollama met de extra vlag
--gpus allin jedocker run-commando. - Controleer met
docker exec -it ollama nvidia-smiof de kaart in de container zichtbaar is en wordt belast tijdens een model.
Een volledig startcommando met GPU ziet er zo uit:
docker run -d --gpus all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama
Werkt ook zonder GPU
Geen GPU? Ollama draait prima op alleen de processor in Docker. Laat dan simpelweg de --gpus all-vlag weg. Kleine modellen blijven goed werkbaar, al is het trager dan met versnelling.
Modellen ophalen in de container
Zodra de container draait, haal je modellen op door een commando in de container uit te voeren:
docker exec -it ollama ollama pull llama3.3
Dit downloadt het model in het volume, waar het bewaard blijft. Je kunt ook gewoon de API op poort 11434 aanspreken vanaf je host of een andere container. Vervang llama3.3 door een ander model uit de Ollama-bibliotheek, bijvoorbeeld een kleiner model als je weinig geheugen hebt.
Ollama en Open WebUI samen
De echte kracht zie je als je Ollama combineert met Open WebUI in een docker-compose-bestand. Daarmee start je beide diensten met een enkel commando en zorg je dat ze elkaar automatisch vinden.
Een minimaal docker-compose.yml ziet er zo uit:
services:
ollama:
image: ollama/ollama
volumes:
- ollama:/root/.ollama
restart: unless-stopped
open-webui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
environment:
- OLLAMA_BASE_URL=http://ollama:11434
volumes:
- open-webui:/app/backend/data
depends_on:
- ollama
restart: unless-stopped
volumes:
ollama:
open-webui:
De stappen om dit op te zetten:
- Schrijf het
docker-compose.yml-bestand met beide diensten. - Geef beide diensten een eigen volume voor hun data, zodat modellen en chats bewaard blijven.
- Laat de diensten elkaar via het interne Docker-netwerk vinden; Open WebUI bereikt Ollama op
http://ollama:11434via de servicenaam. - Start alles met
docker compose up -d.
Daarna open je de webinterface in je browser op poort 3000 en koppelt Open WebUI automatisch aan Ollama.
Tip voor productie
Voor een productieserver plaats je een reverse proxy zoals Nginx of Traefik voor Open WebUI om HTTPS en toegangscontrole te regelen. Stel de Ollama-API zelf nooit direct open naar het internet zonder beveiliging, want dan kan iedereen je modellen en hardware gebruiken.
Verlies ik mijn modellen bij een herstart?
Niet als je een volume gebruikt zoals in de voorbeelden. Het volume bewaart je modellen buiten de container, ook na een herbouw of update van de image.
Heb ik een GPU nodig om Ollama in Docker te draaien?
Nee, Ollama draait ook in Docker op alleen de processor. Een GPU versnelt het aanzienlijk, vooral bij grotere modellen, maar is geen vereiste.
Kan ik Ollama op een server zonder beeldscherm draaien?
Ja, dat is juist een ideale toepassing. Je benadert de API via het netwerk op poort 11434 en beheert alles via de terminal of via Open WebUI.
Hoe combineer ik Ollama met andere diensten?
Met docker-compose beschrijf je meerdere diensten in een bestand die elkaar via een intern netwerk vinden, zoals Ollama en Open WebUI samen. Elke dienst bereikt de andere via de servicenaam.
Waarom werkt mijn GPU niet in de container?
Meestal ontbreekt de NVIDIA Container Toolkit of is de Docker-runtime niet geconfigureerd. Controleer met docker info of de nvidia-runtime aanwezig is en herstart Docker nadat je de toolkit hebt geconfigureerd.
Welk model kan ik het beste eerst proberen?
Begin met een klein tot middelgroot model dat in je beschikbare geheugen past. Grote modellen zoals llama3.3:70b vragen veel VRAM; kies een kleinere variant als je hardware beperkt is.
Met Docker draait Ollama netjes geisoleerd en herhaalbaar. Lees verder over Open WebUI instellen of bekijk welke hardware je nodig hebt voor een AI-server.