डॉकर मॉडल रनर चीटशीट: कमांड्स और उदाहरण

डॉकर मॉडल रनर कमांड्स के लिए त्वरित संदर्भ

डॉकर मॉडल रनर (डीएमआर) डॉकर का आधिकारिक समाधान है जो स्थानीय रूप से एआई मॉडल चलाने के लिए है, जो अप्रैल 2025 में पेश किया गया था। यह चिटशीट सभी आवश्यक कमांड्स, कॉन्फ़िगरेशन, और सर्वोत्तम प्रथाओं के लिए एक तेज़ संदर्भ प्रदान करता है।

डॉकर मॉडल रनर में उपलब्ध गेम्मा मॉडल की सूची

इंस्टॉलेशन

डॉकर डेस्कटॉप

जीयूआई के माध्यम से डॉकर मॉडल रनर को सक्षम करें:

  1. डॉकर डेस्कटॉप खोलें
  2. सेटिंग्सएआई टैब पर जाएं
  3. डॉकर मॉडल रनर को सक्षम करें पर क्लिक करें
  4. डॉकर डेस्कटॉप को रीस्टार्ट करें

/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);

उपयोगी लिंक्स

आधिकारिक दस्तावेज़ीकरण

संबंधित चिट्ठियां

तुलना लेख