# Ollama draaien in Docker 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. [[TOC]] ## 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. :::info title="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: ```bash 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. :::warn title="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. :::howto title="GPU inschakelen in Docker" 1. Installeer de **NVIDIA Container Toolkit** op je host volgens de NVIDIA-documentatie. 2. Configureer de Docker-runtime met `sudo nvidia-ctk runtime configure --runtime=docker`. 3. Herstart de Docker-dienst met `sudo systemctl restart docker` zodat de toolkit wordt herkend. 4. Start Ollama met de extra vlag `--gpus all` in je `docker run`-commando. 5. Controleer met `docker exec -it ollama nvidia-smi` of de kaart in de container zichtbaar is en wordt belast tijdens een model. ::: Een volledig startcommando met GPU ziet er zo uit: ```bash docker run -d --gpus all -v ollama:/root/.ollama -p 11434:11434 --name ollama ollama/ollama ``` :::tip title="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: ```bash 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: ```yaml 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: 1. Schrijf het `docker-compose.yml`-bestand met beide diensten. 2. Geef beide diensten een eigen volume voor hun data, zodat modellen en chats bewaard blijven. 3. Laat de diensten elkaar via het interne Docker-netwerk vinden; Open WebUI bereikt Ollama op `http://ollama:11434` via de servicenaam. 4. 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. :::accordion title="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. ::: :::faq ### 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|Open WebUI instellen]] of bekijk welke [[lokale-ai-hardware-kiezen|hardware je nodig hebt]] voor een AI-server.