Docker Model Runner Cheatsheet: Kommandon & Exempel
Snabbreferens för Docker Model Runner-kommandon
Docker Model Runner (DMR) är Docks officiella lösning för att köra AI-modeller lokalt, introducerad i april 2025. Den här cheatsheten ger en snabb referens för alla viktiga kommandon, konfigurationer och bästa praxis.
För en bredare jämförelse mellan Docker Model Runner och Ollama, vLLM, LocalAI samt molntjänstleverantörer – inklusive kostnads- och infrastrukturtrade-offar – se LLM Hosting: Lokalt, självvärddat & Molninfrastruktur jämförd.

Installation
Docker Desktop
Aktivera Docker Model Runner genom GUI:n:
- Öppna Docker Desktop
- Gå till Inställningar → AI-fliken
- Klicka på Aktivera Docker Model Runner
- Starta om Docker Desktop
/home/rg/prj/hugo-pers/content/post/2025/10/docker-model-runner-cheatsheet/docker-model-runner_w678.jpg

Docker Engine (Linux)
Installera pluginpaketet:
# Ubuntu/Debian
sudo apt-get update
sudo apt-get install docker-model-plugin
# Fedora/RHEL
sudo dnf install docker-model-plugin
# Arch Linux
sudo pacman -S docker-model-plugin
Verifiera installationen:
docker model --help
NVIDIA RTX-stöd för Docker
För att aktivera att LLM:er körs på GPU istället för CPU, installera nvidia-container-toolkit:
distribution=$(. /etc/os-release;echo $ID$VERSION_ID)
curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
curl -s -L https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
sudo systemctl restart docker
sedan kan du köra behållare med --gpus all
docker run --rm --gpus all <image> <command>
kolla att behållaren kan se GPU:n:
docker run --rm --gpus all nvidia/cuda:12.2.2-base-ubi8 nvidia-smi
Lägga till NVidia-stöd för Docker Model Runner
Docker Model Runner kräver explicit GPU-konfiguration. Till skillnad från standard docker run-kommandon, stöds inte --gpus eller -e-flaggor hos docker model run. Istället måste du:
- Konfigurera Docker-daemon för att använda NVIDIA-runtime som standard
Först, kontrollera var nvidia-container-runtime är installerad:
which nvidia-container-runtime
Detta kommer vanligtvis att returnera /usr/bin/nvidia-container-runtime. Använd den här sökvägen i konfigurationen nedan.
Skapa eller uppdatera /etc/docker/daemon.json:
sudo tee /etc/docker/daemon.json > /dev/null << 'EOF'
{
"default-runtime": "nvidia",
"runtimes": {
"nvidia": {
"path": "/usr/bin/nvidia-container-runtime",
"runtimeArgs": []
}
}
}
EOF
Notera: Om which nvidia-container-runtime returnerar en annan sökväg, uppdatera "path"-värdet i JSON-konfigurationen enligt detta.
Starta om Docker:
sudo systemctl restart docker
Verifiera konfigurationen:
docker info | grep -i runtime
Du bör se Default Runtime: nvidia i utdata.
- Reinstallera Docker Model Runner med GPU-stöd
Docker Model Runner måste installeras/ominstalleras med explicit GPU-stöd:
# Stoppa den aktuella runner:n
docker model stop-runner
# Reinstallera med CUDA GPU-stöd
docker model reinstall-runner --gpu cuda
Detta kommer att hämta den CUDA-aktiverade versionen (docker/model-runner:latest-cuda) istället för den endast CPU-versionen.
- Verifiera GPU-tillgänglighet
Kontrollera att Docker Model Runner-behållaren kan komma åt GPU:n:
docker exec docker-model-runner nvidia-smi
- Testa modell med GPU
Kör en modell och kontrollera loggarna för att bekräfta GPU-användning:
docker model run ai/qwen3:14B-Q6_K "who are you?"
Kontrollera loggarna för GPU-bekräftelse:
docker model logs | grep -i cuda
Du bör se meddelanden som:
using device CUDA0 (NVIDIA GeForce RTX 4080)offloaded 41/41 layers to GPUCUDA0 model buffer size = 10946.13 MiB
Notera: Om du redan har installerat Docker Model Runner utan GPU-stöd, måste du ominstallera den med --gpu cuda-flaggan. Enbart att konfigurera Docker-daemon är inte tillräckligt – runner-behållaren själv måste vara den CUDA-aktiverade versionen.
Tillgängliga GPU-bakend:
cuda- NVIDIA CUDA (vanligast)rocm- AMD ROCmmusa- Moore Threads MUSAcann- Huawei CANNauto- Automatisk upptäckt (standard)none- Endast CPU
Core Commands
Pulla Modeller
Hämta förpackade modeller från Docker Hub:
# Grundläggande pull
docker model pull ai/llama2
# Hämta specifik version
docker model pull ai/llama2:7b-q4
# Hämta från anpassad register
docker model pull myregistry.com/models/mistral:latest
# Lista tillgängliga modeller i ett namnutrymme
docker search ai/
Kör Modeller
Starta en modell med automatisk API-server:
# Grundläggande kör (interaktiv)
docker model run ai/llama2 "Vad är Docker?"
# Kör som tjänst (bakgrund)
docker model run -d
overall vi inte har många alternativ med att köra modeller via CLI:
docker model run --help
Usage: docker model run MODEL [PROMPT]
Kör en modell och interagera med den med en inkommande prompt eller chattläge
Alternativ:
--color string Använd färgad utdata (auto|yes|no) (standard "auto")
--debug Aktivera felsökningsloggning
-d, --detach Ladda modellen i bakgrunden utan interaktion
--ignore-runtime-memory-check Blockera inte hämtning om uppskattad körningstid minne för modell överstiger systemresurser.
Lista Modeller
Visa nedladdade och körande modeller:
# Lista alla nedladdade modeller
docker model ls
# Lista körande modeller
docker model ps
# Lista med detaljerad information
docker model ls --json
# Lista med detaljerad information
docker model ls --openai
# Returnerar bara hashkoder
docker model ls -q
Ta bort Modeller
Rensa modeller från lokal lagring:
# Ta bort specifik modell
docker model rm ai/llama2
# Ta bort med tvång (även om den kör)
docker model rm -f ai/llama2
# Ta bort oanvända modeller
docker model prune
# Ta bort alla modeller
docker model rm $(docker model ls -q)
Konfigurera Modell Kontextstorlekar
Vi kan inte använda CLI för att ange kontextstorlek för en specifik begäran.
Basis kan man endast kontrollera modellens kontextstorlek på tre sätt:
-
Packa modellen själv, specifiera önskad hårdkodad kontextstorlek (Se mer om detta i nästa avsnitt.)
-
När du använder docker model runner konfigurera kommandot med –context-size-parameter som
docker model configure --context-size=10000 ai/gemma3-qat:4B
Sedan kan du anropa curl till den, men kan inte göra docker moder run... - den kommer att ignorera konfigurationen.
- I
docker-compose.yaml-filen, men vi kan inte använda docker-model-runner-bild på detta sätt, eftersom den skickar en hårdkodad kontextstorlek på 4096 till modellen
...
models:
llm_model:
model: ai/gemma3-qat:4B
context_size: 10240
...
För mer detaljer se dedikerad post om detta: Specificera kontextstorlek i DMR
Packa Anpassade Modeller
Skapa OCI-artefakt från GGUF
Paketera dina egna GGUF-modeller:
# Grundläggande paketering
docker model package --gguf /path/to/model.gguf myorg/mymodel:latest
# Paketera med metadata
docker model package \
--gguf /path/to/model.gguf \
--label "description=Anpassad Llama-modell" \
--label "version=1.0" \
myorg/mymodel:v1.0
# Paketera och pusha i ett kommando
docker model package --gguf /path/to/model.gguf --push myorg/mymodel:latest
# Paketera med anpassad kontextstorlek
docker model package \
--gguf /path/to/model.gguf \
--context 8192 \
myorg/mymodel:latest
Publicera Modeller
Pusha modeller till register:
# Logga in på Docker Hub
docker login
# Pusha till Docker Hub
docker model push myorg/mymodel:latest
# Pusha till privat register
docker login myregistry.com
docker model push myregistry.com/models/mymodel:latest
# Tagga och pusha
docker model tag mymodel:latest myorg/mymodel:v1.0
docker model push myorg/mymodel:v1.0
API-användning
OpenAI-kompatibla slutpunkter
Docker Model Runner exponerar automatiskt OpenAI-kompatibla API:er:
# Starta modell med API
docker model run -d -p 8080:8080 --name llm ai/llama2
# Chatkomplettering
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama2",
"messages": [{"role": "user", "content": "Hej!"}]
}'
# Textgenerering
curl http://localhost:8080/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama2",
"prompt": "En gång på en tid",
"max_tokens": 100
}'
# Strömmad svar
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama2",
"messages": [{"role": "user", "content": "Berätta en historia"}],
"stream": true
}'
# Lista tillgängliga modeller via API
curl http://localhost:8080/v1/models
# Modellinformation
curl http://localhost:8080/v1/models/llama2
Docker Compose-konfiguration
Grundläggande Compose-fil
version: '3.8'
services:
llm:
image: docker-model-runner
model: ai/llama2:7b-q4
ports:
- "8080:8080"
environment:
- MODEL_TEMPERATURE=0.7
volumes:
- docker-model-runner-models:/models
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
volumes:
docker-model-runner-models:
external: true
Multi-Modellkonfiguration
version: '3.8'
services:
llama:
image: docker-model-runner
model: ai/llama2
ports:
- "8080:8080"
mistral:
image: docker-model-runner
model: ai/mistral
ports:
- "8081:8080"
embedding:
image: docker-model-runner
model: ai/nomic-embed-text
ports:
- "8082:8080"
För mer avancerade Docker Compose-konfigurationer och kommandon, se vår Docker Compose Cheatsheet.
Miljövariabler
Konfigurera modellbeteende med miljövariabler:
# Temperatur (0.0-1.0)
MODEL_TEMPERATURE=0.7
# Top-p sampling
MODEL_TOP_P=0.9
# Top-k sampling
MODEL_TOP_K=40
# Max antal token
MODEL_MAX_TOKENS=2048
# Antal GPU-lager
MODEL_GPU_LAYERS=35
# Batchstorlek
MODEL_BATCH_SIZE=512
# Trådantal (CPU)
MODEL_THREADS=8
# Aktivera detaljerad loggning
MODEL_VERBOSE=true
# API-nyckel för autentisering
MODEL_API_KEY=your-secret-key
Kör med miljövariabler:
docker model run \
-e MODEL_TEMPERATURE=0.8 \
-e MODEL_API_KEY=secret123 \
ai/llama2
GPU-konfiguration
Automatisk GPU-upptäckt
DMR upptäcker automatiskt och använder tillgängliga GPU:er:
# Använd alla GPU:er
docker model run --gpus all ai/llama2
# Använd specifik GPU
docker model run --gpus 0 ai/llama2
# Använd flera specifika GPU:er
docker model run --gpus 0,1,2 ai/llama2
# GPU med minnesgräns
docker model run --gpus all --memory 16g ai/llama2
Endast CPU-läge
Tvinga CPU-inferens när GPU är tillgänglig:
docker model run --no-gpu ai/llama2
Multi-GPU Tensorparallelism
Fördela stora modeller över GPU:er:
docker model run \
--gpus all \
--tensor-parallel 2 \
ai/llama2-70b
Inspektion och felsökning
Visa modellinformation
# Inspektera modellkonfiguration
docker model inspect ai/llama2
# Visa modelllager
docker model history ai/llama2
# Kontrollera modellstorlek och metadata
docker model inspect --format='{{.Size}}' ai/llama2
Loggar och övervakning
# Visa modellloggar
docker model logs llm
# Följ loggar i realtid
docker model logs -f llm
# Visa de sista 100 raderna
docker model logs --tail 100 llm
# Visa loggar med tidsstämplar
docker model logs -t llm
Prestandastatistik
# Resursanvändning
docker model stats
# Specifik modellstatistik
docker model stats llm
# Statistik i JSON-format
docker model stats --format json
Nätverk
Exponera API:er
# Standardport (8080)
docker model run -p 8080:8080 ai/llama2
# Anpassad port
docker model run -p 3000:8080 ai/llama2
# Bind till specifik gränssnitt
docker model run -p 127.0.0.1:8080:8080 ai/llama2
# Flera portar
docker model run -p 8080:8080 -p 9090:9090 ai/llama2
Nätverkskonfiguration
# Skapa anpassat nätverk
docker network create llm-network
# Kör modell på anpassat nätverk
docker model run --network llm-network --name llm ai/llama2
# Anslut till befintligt nätverk
docker model run --network host ai/llama2
Säkerhet
Åtkomstkontroll
# Kör med API-nyckelautentisering
docker model run \
-e MODEL_API_KEY=my-secret-key \
ai/llama2
# Använd med autentisering
curl http://localhost:8080/v1/chat/completions \
-H "Authorization: Bearer my-secret-key" \
-H "Content-Type: application/json" \
-d '{"model": "llama2", "messages": [...]}'
Registerautentisering
# Logga in på privat register
docker login myregistry.com -u username -p password
# Hämta från privat register
docker model pull myregistry.com/private/model:latest
# Använd autentiseringshjälpare
docker login --password-stdin < token.txt
Bästa praxis
Modellval
# Använd kvantiseringade modeller för snabbare inferens
docker model pull ai/llama2:7b-q4 # 4-bit kvantisering
docker model pull ai/llama2:7b-q5 # 5-bit kvantisering
docker model pull ai/llama2:7b-q8 # 8-bit kvantisering
# Kontrollera modellvarianter
docker search ai/llama2
Resurshantering
# Ställ in minnesgränser
docker model run --memory 8g --memory-swap 16g ai/llama2
# Ställ in CPU-gränser
docker model run --cpus 4 ai/llama2
# Begränsa GPU-minne
docker model run --gpus all --gpu-memory 8g ai/llama2
Hälsocheckar
# Kör med hälsocheck
docker model run \
--health-cmd "curl -f http://localhost:8080/health || exit 1" \
--health-interval 30s \
--health-timeout 10s \
--health-retries 3 \
ai/llama2
Produktionsskala
För produktionsskala deployment med Kubernetes, kan Docker Model Runner-behållare orchestras med standard Kubernetes-manifester. Definiera deployment med resursgränser, autoskalning och belastningsutjämning. För en omfattande Kubernetes-kommandoreferens och deployment-mönster, se vår Kubernetes Cheatsheet.
# Exempel: Deploya till Kubernetes-kluster
kubectl apply -f llm-deployment.yaml
# Skala deployment
kubectl scale deployment llm --replicas=3
# Exponera som tjänst
kubectl expose deployment llm --type=LoadBalancer --port=8080
Felsökning
Vanliga problem
Modellen startar inte:
# Kontrollera tillgänglig diskutrymme
df -h
# Visa detaljerade felloggar
docker model logs --tail 50 llm
# Verifiera GPU-tillgänglighet
nvidia-smi # För NVIDIA-GPU:n
Minnesfel:
# Använd en mindre kvantiseringad modell
docker model pull ai/llama2:7b-q4
# Minska kontextstorlek
docker model run -e MODEL_CONTEXT=2048 ai/llama2
# Begränsa batchstorlek
docker model run -e MODEL_BATCH_SIZE=256 ai/llama2
Svagt inferens:
# Kontrollera GPU-användning
docker model stats llm
# Se till att GPU används
docker model logs llm | grep -i gpu
# Öka GPU-lager
docker model run -e MODEL_GPU_LAYERS=40 ai/llama2
Diagnostiska kommandon
# Systeminformation
docker model system info
# Diskanvändning
docker model system df
# Rensa oanvända resurser
docker model system prune
# Fullständig rensning (ta bort alla modeller)
docker model system prune -a
Integrationsexempel
Python-integration
import openai
# Konfigurera klient för Docker Model Runner
client = openai.OpenAI(
base_url="http://localhost:8080/v1",
api_key="not-needed" # DMR kräver inte nyckel som standard
)
# Chatkomplettering
response = client.chat.completions.create(
model="llama2",
messages=[
{"role": "user", "content": "Hej!"}
]
)
print(response.choices[0].message.content)
# Strömning
stream = client.chat.completions.create(
model="llama2",
messages=[{"role": "user", "content": "Berätta en historia"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
Bash-skript
#!/bin/bash
# Starta modell om den inte kör
if ! docker model ps | grep -q "llm"; then
docker model run -d --name llm -p 8080:8080 ai/llama2
echo "Väntar på att modellen ska starta..."
sleep 10
fi
# Gör API-anrop
curl -s http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama2",
"messages": [{"role": "user", "content": "'"$1"'"}]
}' | jq -r '.choices[0].message.content'
Node.js-integration
import OpenAI from 'openai';
const client = new OpenAI({
baseURL: 'http://localhost:8080/v1',
apiKey: 'not-needed'
});
async function chat(message) {
const completion = await client.chat.completions.create({
model: 'llama2',
messages: [{ role: 'user', content: message }]
});
return completion.choices[0].message.content;
}
// Användning
const response = await chat('Vad är Docker Model Runner?');
console.log(response);
För att se hur Docker Model Runner passar ihop med Ollama, vLLM, LocalAI och molntjänstleverantörer, se vår LLM Hosting: Lokalt, självvärddat & Molninfrastruktur jämförd-guide.
Nyttafulla länkar
Officiell dokumentation
- Docker Model Runner Officiell Sida
- Docker Model Runner Dokumentation
- Docker Model Runner Startguide
- Docker Model Runner Bloggpost om introduktion