برای اجرای مدل زبانی روی لوکال معمولاً کار میرسه به نصب یه ابزار جدا، محیط پایتون، درایور GPU و یه سرویسی که با بقیهی استکت جور درنمیاد. اگر Docker داری، لازم نیست از این فضا بیای بیرون.
ابزار Docker Model Runner مدل رو مثل ایمیج مدیریت میکنه: از Docker Hub یا Hugging Face میکشی، با docker model اجرا میکنی، و روی خودِ ماشین یه API سازگار با OpenAI بالا میاد. پرامپت و پاسخ روی سیستم خودت میمونه.
چرا بهدرد میخوره؟
دستورها همون شکل آشنای Docker است. مدلها بعد از بار اول روی دیسک کش میشن، فقط موقع درخواست میان تو حافظه، و وقتی بیکار باشن از حافظه خارج میشن. برای لپتاپی که هم کار عادی میکنه هم گاهی به مدل نیاز داره، این رفتار از یه سرویسی که همیشه روشنه کمخرجتر است.
اگر اپلیکیشن الان با OpenAI SDK حرف میزنه، غالباً فقط base_url عوض میشه. تو Compose هم میشه مدل رو کنار سرویس تعریف کرد تا آدرس به کانتینر تزریق بشه؛ یعنی مدل بخشی از همون فایل است، نه یه باکس جدا روی میز.
نزدیکترین گزینه معمولاً Ollama است. اگر همین حالا باهاش راحت هستی، عوض کردنش اجباری نیست. نقطهی قوت این ابزار برای کسی است که میخواد مدل، ایمیج و سرویس رو با یه ابزار واحد جلو ببره.
شروع کوتاه
روی Docker Desktop برو Settings، تب AI، گزینهی Enable Docker Model Runner. اگر از روی خودِ ماشین (نه از داخل کانتینر) میخوای با curl یا SDK صداش بزنی، باید TCP روی پورت ۱۲۴۳۴ رو هم باز کنی، روی Docker Engine این پورت پیشفرض باز است؛ فقط پلاگین رو نصب کن:
# Debian / Ubuntu
sudo apt-get install docker-model-plugin
# Fedora / RHEL
sudo dnf install docker-model-plugin
بعد یه مدل کوچک pull کن و همونجا چت کن:
docker model pull ai/smollm2
docker model run ai/smollm2
از روی هاست همون API:
curl http://localhost:12434/engines/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"ai/smollm2","messages":[{"role":"user","content":"سلام، در یک جمله بگو Docker چیست؟"}]}'
با SDK پایتون تقریباً همیون چیزی هست که عادت داریم. فقط کلید رو خالی یا ساختگی بذار؛ این سرویس بهش نگاه نمیکنه:
from openai import OpenAI
client = OpenAI(
base_url="http://localhost:12434/engines/v1",
api_key="not-needed",
)
r = client.chat.completions.create(
model="ai/smollm2",
messages=[{"role": "user", "content": "سلام"}],
)
print(r.choices[0].message.content)
تذکر مهم
این ابزار جای Docker رو نمیگیره؛ روی همون Docker سوار است. API احراز هویت نداره؛ هر کلاینتی که به پورت برسه میتونه مدل رو صدا بزنه، پس روی شبکهی باز رهایش نکن.
روی مک فعلاً Apple Silicon، روی ویندوز برای شتاب GPU معمولاً انویدیا، روی لینوکس خودِ Docker Engine. مدل بزرگ بدون RAM کافی یا کند میشه یا اصلاً لود نمیشه. موتور پیشفرض llama.cpp است و برای کار روزمره کافی است؛ vLLM مسیر جداگانهای است برای لینوکس با GPU انویدیا و ترافیک بالاتر.
مستندات رسمی:
شروع کار
https://docs.docker.com/ai/model-runner/get-started/
مرجع API
https://docs.docker.com/ai/model-runner/api-reference/
@things_to_know_channel