डॉकर मॉडल रनर चीटशीट: कमांड्स और उदाहरण
डॉकर मॉडल रनर कमांड्स के लिए त्वरित संदर्भ
डॉकर मॉडल रनर (डीएमआर) डॉकर का आधिकारिक समाधान है जो स्थानीय रूप से एआई मॉडल चलाने के लिए है, जो अप्रैल 2025 में पेश किया गया था। यह चिटशीट सभी आवश्यक कमांड्स, कॉन्फ़िगरेशन, और सर्वोत्तम प्रथाओं के लिए एक तेज़ संदर्भ प्रदान करता है।
इंस्टॉलेशन
डॉकर डेस्कटॉप
जीयूआई के माध्यम से डॉकर मॉडल रनर को सक्षम करें:
- डॉकर डेस्कटॉप खोलें
- सेटिंग्स → एआई टैब पर जाएं
- डॉकर मॉडल रनर को सक्षम करें पर क्लिक करें
- डॉकर डेस्कटॉप को रीस्टार्ट करें
/home/rg/prj/hugo-pers/content/post/2025/10/docker-model-runner-cheatsheet/docker-model-runner_w678.jpg
डॉकर इंजन (लिनक्स)
प्लगइन पैकेज इंस्टॉल करें:
# यूबंटू/डेबियन
sudo apt-get update
sudo apt-get install docker-model-plugin
# फेडोरा/आरएचईएल
sudo dnf install docker-model-plugin
# आर्क लिनक्स
sudo pacman -S docker-model-plugin
इंस्टॉलेशन की पुष्टि करें:
docker model --help
कोर कमांड्स
मॉडल्स को पुल करना
डॉकर हब से प्री-पैकेज्ड मॉडल्स को पुल करें:
# बेसिक पुल
docker model pull ai/llama2
# विशिष्ट संस्करण पुल करें
docker model pull ai/llama2:7b-q4
# कस्टम रजिस्ट्री से पुल करें
docker model pull myregistry.com/models/mistral:latest
# एक नेमस्पेस में उपलब्ध मॉडल्स की सूची देखें
docker search ai/
मॉडल्स को चलाना
एक मॉडल को ऑटोमैटिक एपीआई सर्विंग के साथ शुरू करें:
# बेसिक रन (इंटरैक्टिव)
docker model run ai/llama2 "डॉकर क्या है?"
# सर्विस के रूप में रन (बैकग्राउंड)
docker model run -d --name my-llm ai/llama2
# कस्टम पोर्ट के साथ रन
docker model run -p 8080:8080 ai/llama2
# जीपीयू स्पेसिफिकेशन के साथ रन
docker model run --gpus 0,1 ai/llama2
# मेमोरी लिमिट के साथ रन
docker model run --memory 8g ai/llama2
# एन्वायरनमेंट वेरिएबल्स के साथ रन
docker model run -e MODEL_CONTEXT=4096 ai/llama2
# पर्सिस्टेंट डेटा के लिए वॉल्यूम माउंट के साथ रन
docker model run -v model-data:/data ai/llama2
मॉडल्स की सूची
डाउनलोड किए गए और चल रहे मॉडल्स देखें:
# सभी डाउनलोड किए गए मॉडल्स की सूची देखें
docker model ls
# चल रहे मॉडल्स की सूची देखें
docker model ps
# विस्तृत जानकारी के साथ सूची देखें
docker model ls --all --format json
# नाम के आधार पर फ़िल्टर करें
docker model ls --filter "name=llama"
मॉडल्स को रोकना
चल रहे मॉडल इंस्टेंस को रोकें:
# विशिष्ट मॉडल को रोकें
docker model stop my-llm
# सभी चल रहे मॉडल्स को रोकें
docker model stop $(docker model ps -q)
# टाइमआउट के साथ रोकें
docker model stop --time 30 my-llm
मॉडल्स को हटाना
स्थानीय स्टोरेज से मॉडल्स को हटाएं:
# विशिष्ट मॉडल को हटाएं
docker model rm ai/llama2
# बलपूर्वक हटाएं (चल रहे होने पर भी)
docker model rm -f ai/llama2
# अनुपयोगी मॉडल्स को हटाएं
docker model prune
# सभी मॉडल्स को हटाएं
docker model rm $(docker model ls -q)
कस्टम मॉडल्स को पैकेज करना
GGUF से OCI आर्टिफैक्ट बनाना
अपने GGUF मॉडल्स को पैकेज करें:
# बेसिक पैकेजिंग
docker model package --gguf /path/to/model.gguf myorg/mymodel:latest
# मेटाडेटा के साथ पैकेजिंग
docker model package \
--gguf /path/to/model.gguf \
--label "description=Custom Llama model" \
--label "version=1.0" \
myorg/mymodel:v1.0
# पैकेज और पुश एक कमांड में
docker model package --gguf /path/to/model.gguf --push myorg/mymodel:latest
# कस्टम कॉन्टेक्स्ट साइज़ के साथ पैकेजिंग
docker model package \
--gguf /path/to/model.gguf \
--context 8192 \
myorg/mymodel:latest
मॉडल्स को प्रकाशित करना
मॉडल्स को रजिस्ट्री में पुश करें:
# डॉकर हब में लॉगिन करें
docker login
# डॉकर हब में पुश करें
docker model push myorg/mymodel:latest
# प्राइवेट रजिस्ट्री में पुश करें
docker login myregistry.com
docker model push myregistry.com/models/mymodel:latest
# टैग और पुश करें
docker model tag mymodel:latest myorg/mymodel:v1.0
docker model push myorg/mymodel:v1.0
एपीआई उपयोग
ओपनएआई-संगत एंडपॉइंट्स
डॉकर मॉडल रनर स्वचालित रूप से ओपनएआई-संगत एपीआईज़ को एक्सपोज़ करता है:
# मॉडल के साथ एपीआई शुरू करें
docker model run -d -p 8080:8080 --name llm ai/llama2
# चैट कम्प्लीशन
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama2",
"messages": [{"role": "user", "content": "नमस्ते!"}]
}'
# टेक्स्ट जनरेशन
curl http://localhost:8080/v1/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama2",
"prompt": "एक बार एक समय था",
"max_tokens": 100
}'
# स्ट्रीमिंग रिस्पॉन्स
curl http://localhost:8080/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "llama2",
"messages": [{"role": "user", "content": "मुझे एक कहानी सुनाएं"}],
"stream": true
}'
# एपीआई के माध्यम से उपलब्ध मॉडल्स की सूची देखें
curl http://localhost:8080/v1/models
# मॉडल जानकारी
curl http://localhost:8080/v1/models/llama2
डॉकर कंपोज़ कॉन्फ़िगरेशन
बेसिक कंपोज़ फ़ाइल
version: '3.8'
services:
llm:
image: docker-model-runner
model: ai/llama2:7b-q4
ports:
- "8080:8080"
environment:
- MODEL_CONTEXT=4096
- MODEL_TEMPERATURE=0.7
volumes:
- model-data:/root/.cache
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: all
capabilities: [gpu]
volumes:
model-data:
मल्टी-मॉडल सेटअप
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"
अधिक उन्नत डॉकर कंपोज़ कॉन्फ़िगरेशन और कमांड्स के लिए, हमारी डॉकर कंपोज़ चिटशीट देखें जिसमें नेटवर्किंग, वॉल्यूम्स, और ऑर्केस्ट्रेशन पैटर्न्स शामिल हैं।
एन्वायरनमेंट वेरिएबल्स
मॉडल व्यवहार को एन्वायरनमेंट वेरिएबल्स के साथ कॉन्फ़िगर करें:
# कॉन्टेक्स्ट विंडो साइज़
MODEL_CONTEXT=4096
# टेम्परेचर (0.0-1.0)
MODEL_TEMPERATURE=0.7
# टॉप-प सैम्पलिंग
MODEL_TOP_P=0.9
# टॉप-क सैम्पलिंग
MODEL_TOP_K=40
# अधिकतम टोकन्स
MODEL_MAX_TOKENS=2048
# जीपीयू लेयर्स की संख्या
MODEL_GPU_LAYERS=35
# बैच साइज़
MODEL_BATCH_SIZE=512
# थ्रेड काउंट (सीपीयू)
MODEL_THREADS=8
# वर्बोज़ लॉगिंग को सक्षम करें
MODEL_VERBOSE=true
# ऑथेंटिकेशन के लिए एपीआई की
MODEL_API_KEY=your-secret-key
एन्वायरनमेंट वेरिएबल्स के साथ रन करें:
docker model run \
-e MODEL_CONTEXT=8192 \
-e MODEL_TEMPERATURE=0.8 \
-e MODEL_API_KEY=secret123 \
ai/llama2
जीपीयू कॉन्फ़िगरेशन
ऑटोमैटिक जीपीयू डिटेक्शन
डीएमआर स्वचालित रूप से उपलब्ध जीपीयूज़ का पता लगाता है और उनका उपयोग करता है:
# सभी जीपीयूज़ का उपयोग करें
docker model run --gpus all ai/llama2
# विशिष्ट जीपीयू का उपयोग करें
docker model run --gpus 0 ai/llama2
# कई विशिष्ट जीपीयूज़ का उपयोग करें
docker model run --gpus 0,1,2 ai/llama2
# जीपीयू के साथ मेमोरी लिमिट
docker model run --gpus all --memory 16g ai/llama2
सीपीयू-ओनली मोड
जीपीयू उपलब्ध होने पर सीपीयू इन्फरेंस को बलपूर्वक लागू करें:
docker model run --no-gpu ai/llama2
मल्टी-जीपीयू टेंसर पैरलेलिज्म
बड़े मॉडल्स को जीपीयूज़ के बीच वितरित करें:
docker model run \
--gpus all \
--tensor-parallel 2 \
ai/llama2-70b
इंस्पेक्शन और डिबगिंग
मॉडल विवरण देखें
# मॉडल कॉन्फ़िगरेशन का इंस्पेक्शन करें
docker model inspect ai/llama2
# मॉडल लेयर्स देखें
docker model history ai/llama2
# मॉडल साइज़ और मेटाडेटा की जांच करें
docker model inspect --format='{{.Size}}' ai/llama2
लॉग्स और मॉनिटरिंग
# मॉडल लॉग्स देखें
docker model logs llm
# रियल-टाइम में लॉग्स फॉलो करें
docker model logs -f llm
# पिछले 100 लाइनों देखें
docker model logs --tail 100 llm
# टाइमस्टैम्प्स के साथ लॉग्स देखें
docker model logs -t llm
प्रदर्शन सांख्यिकी
# रिसोर्स उपयोग
docker model stats
# विशिष्ट मॉडल सांख्यिकी
docker model stats llm
# JSON फॉर्मेट में सांख्यिकी
docker model stats --format json
नेटवर्किंग
एपीआईज़ को एक्सपोज़ करना
# डिफ़ॉल्ट पोर्ट (8080)
docker model run -p 8080:8080 ai/llama2
# कस्टम पोर्ट
docker model run -p 3000:8080 ai/llama2
# विशिष्ट इंटरफ़ेस पर बाइंड करें
docker model run -p 127.0.0.1:8080:8080 ai/llama2
# कई पोर्ट्स
docker model run -p 8080:8080 -p 9090:9090 ai/llama2
नेटवर्क कॉन्फ़िगरेशन
# कस्टम नेटवर्क बनाएं
docker network create llm-network
# कस्टम नेटवर्क पर मॉडल चलाएं
docker model run --network llm-network --name llm ai/llama2
# मौजूदा नेटवर्क से कनेक्ट करें
docker model run --network host ai/llama2
सुरक्षा
एक्सेस कंट्रोल
# एपीआई की ऑथेंटिकेशन के साथ रन करें
docker model run \
-e MODEL_API_KEY=my-secret-key \
ai/llama2
# ऑथेंटिकेशन के साथ उपयोग करें
curl http://localhost:8080/v1/chat/completions \
-H "Authorization: Bearer my-secret-key" \
-H "Content-Type: application/json" \
-d '{"model": "llama2", "messages": [...]}'
रजिस्ट्री ऑथेंटिकेशन
# प्राइवेट रजिस्ट्री में लॉगिन करें
docker login myregistry.com -u username -p password
# प्राइवेट रजिस्ट्री से पुल करें
docker model pull myregistry.com/private/model:latest
# क्रेडेंशियल्स हेल्पर का उपयोग करें
docker login --password-stdin < token.txt
सर्वोत्तम प्रथाएँ
मॉडल चयन
# तेज़ इन्फरेंस के लिए क्वांटाइज़्ड मॉडल्स का उपयोग करें
docker model pull ai/llama2:7b-q4 # 4-बिट क्वांटाइज़ेशन
docker model pull ai/llama2:7b-q5 # 5-बिट क्वांटाइज़ेशन
docker model pull ai/llama2:7b-q8 # 8-बिट क्वांटाइज़ेशन
# मॉडल वैरिएंट्स की जांच करें
docker search ai/llama2
रिसोर्स मैनेजमेंट
# मेमोरी लिमिट्स सेट करें
docker model run --memory 8g --memory-swap 16g ai/llama2
# सीपीयू लिमिट्स सेट करें
docker model run --cpus 4 ai/llama2
# जीपीयू मेमोरी को लिमिट करें
docker model run --gpus all --gpu-memory 8g ai/llama2
हेल्थ चेक्स
# हेल्थ चेक के साथ रन करें
docker model run \
--health-cmd "curl -f http://localhost:8080/health || exit 1" \
--health-interval 30s \
--health-timeout 10s \
--health-retries 3 \
ai/llama2
प्रोडक्शन ऑर्केस्ट्रेशन
प्रोडक्शन डिप्लॉयमेंट्स के लिए, डॉकर मॉडल रनर कंटेनर्स को स्टैंडर्ड क्यूबर्नेट्स मैनिफेस्ट्स का उपयोग करके ऑर्केस्ट्रेट किया जा सकता है। रिसोर्स लिमिट्स, ऑटोस्केलिंग, और लोड बैलेंसिंग के साथ डिप्लॉयमेंट्स को परिभाषित करें। व्यापक क्यूबर्नेट्स कमांड रेफरेंस और डिप्लॉयमेंट पैटर्न्स के लिए, हमारी क्यूबर्नेट्स चिटशीट देखें।
# उदाहरण: क्यूबर्नेट्स क्लस्टर में डिप्लॉय करें
kubectl apply -f llm-deployment.yaml
# डिप्लॉयमेंट को स्केल करें
kubectl scale deployment llm --replicas=3
# सर्विस के रूप में एक्सपोज़ करें
kubectl expose deployment llm --type=LoadBalancer --port=8080
समस्याओं का समाधान
सामान्य समस्याएं
मॉडल शुरू नहीं हो रहा है:
# उपलब्ध डिस्क स्पेस की जांच करें
df -h
# विस्तृत त्रुटि लॉग देखें
docker model logs --tail 50 llm
# GPU की उपलब्धता की पुष्टि करें
nvidia-smi # NVIDIA GPUs के लिए
मेमोरी समाप्त हो गई त्रुटियां:
# छोटे क्वांटाइज्ड मॉडल का उपयोग करें
docker model pull ai/llama2:7b-q4
# संदर्भ आकार कम करें
docker model run -e MODEL_CONTEXT=2048 ai/llama2
# बैच आकार सीमित करें
docker model run -e MODEL_BATCH_SIZE=256 ai/llama2
धीमी अनुमान:
# GPU उपयोग की जांच करें
docker model stats llm
# सुनिश्चित करें कि GPU का उपयोग हो रहा है
docker model logs llm | grep -i gpu
# GPU लेयर्स बढ़ाएं
docker model run -e MODEL_GPU_LAYERS=40 ai/llama2
निदान कमांड्स
# सिस्टम जानकारी
docker model system info
# डिस्क उपयोग
docker model system df
# अनुपयोगी संसाधनों की सफाई
docker model system prune
# पूर्ण सफाई (सभी मॉडल हटाएं)
docker model system prune -a
एकीकरण उदाहरण
Python एकीकरण
import openai
# Docker Model Runner के लिए क्लाइंट कॉन्फ़िगर करें
client = openai.OpenAI(
base_url="http://localhost:8080/v1",
api_key="not-needed" # DMR डिफ़ॉल्ट रूप से की आवश्यकता नहीं है
)
# चैट पूर्णता
response = client.chat.completions.create(
model="llama2",
messages=[
{"role": "user", "content": "Hello!"}
]
)
print(response.choices[0].message.content)
# स्ट्रीमिंग
stream = client.chat.completions.create(
model="llama2",
messages=[{"role": "user", "content": "Tell me a story"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
Bash स्क्रिप्ट
#!/bin/bash
# अगर चल रहा नहीं है तो मॉडल शुरू करें
if ! docker model ps | grep -q "llm"; then
docker model run -d --name llm -p 8080:8080 ai/llama2
echo "मॉडल शुरू होने की प्रतीक्षा कर रहे हैं..."
sleep 10
fi
# API कॉल करें
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 एकीकरण
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;
}
// उपयोग
const response = await chat('What is Docker Model Runner?');
console.log(response);
उपयोगी लिंक्स
आधिकारिक दस्तावेज़ीकरण
- Docker Model Runner आधिकारिक पृष्ठ
- Docker Model Runner दस्तावेज़ीकरण
- Docker Model Runner शुरू करने के लिए गाइड
- Docker Model Runner घोषणा ब्लॉग
संबंधित चिट्ठियां
- Docker चिट्ठी
- Docker Compose चिट्ठी - उदाहरणों के साथ सबसे उपयोगी कमांड्स
- Kubernetes चिट्ठी
- Ollama चिट्ठी