في ZimaOS الحالي، لا تتبع تعليمات Ubuntu التي تثبّت NVIDIA Container Toolkit باستخدام apt على المضيف. لدى ZimaOS تكامل خاص به مع تعريف NVIDIA وبيئة التشغيل، وتوضح وثائق تطبيقات Docker الحالية لديه استخدام حاويات GPU عبر runtime: nvidia بالإضافة إلى NVIDIA_VISIBLE_DEVICES.
كان لدى المستخدم في المصدر من عام 2025 خادم x86 عام مزوّدًا ببطاقة GTX 1050، وقد لاحظ بشكل صحيح أن ZimaOS لا يحتوي على مدير حزم Debian عادي. كما أن تشغيل مجموعة الأدوات داخل حاوية Alpine لا يمكنه حل مشكلة بيئة تشغيل المضيف؛ إذ يجب أن تكون بيئة تشغيل NVIDIA موجودة على طبقة مضيف Docker.
تحقّق أولًا من تعريف GPU على المضيف
nvidia-smi
lspci -nnk | grep -A3 -Ei 'vga|3d|display'
إذا تعذّر على nvidia-smi الاتصال بوحدة GPU، فلن تكون إعدادات Docker هي المشكلة الأولى.
تحقّق مما إذا كان Docker يحتوي بالفعل على بيئة تشغيل NVIDIA
docker info | grep -i nvidia
ps aux | grep '[d]ockerd'
يبدأ ZimaOS الحالي عادةً تشغيل Docker مع إتاحة بيئة تشغيل NVIDIA، حتى على الأنظمة التي لا تستخدمها بنشاط.
استخدم نموذج بيئة التشغيل الخاص بـ ZimaOS
يوضح دليل بيئة تشغيل NVIDIA في Docker على ZimaOS الحالي ما يلي:
services:
my-gpu-app:
image: your/image
runtime: nvidia
ipc: host
environment:
NVIDIA_VISIBLE_DEVICES: all
لماذا لا ينجح تثبيت مجموعة الأدوات داخل حاوية أخرى؟
تتكامل NVIDIA Container Toolkit مع Docker/containerd على المضيف. ويستخدم دليل تثبيت NVIDIA Container Toolkit الخاص بـ NVIDIA الأمر nvidia-ctk runtime configure لتعديل إعدادات Docker على المضيف وإعادة تشغيل Docker.
لا تنسخ تعليمات apt إلى ZimaOS
يفترض دليل تثبيت NVIDIA استخدام توزيعات مدعومة بأسلوب Debian/RPM مع مديري حزم على المضيف. أما ZimaOS الحالي فلا تتم صيانته بهذه الطريقة، لذلك قد تتعارض تعليمات حزم المضيف مع صورة الجهاز ونموذج التحديث الخاص به.
اختبر الوصول إلى GPU داخل حاوية
بعد التأكد من سلامة تعريف المضيف وبيئة التشغيل، استخدم حاوية معروفة بدعم GPU أو تطبيقك المستهدف للتأكد من أن الجهاز ظاهر فعلًا داخل الحاوية.
تفرض GTX 1050 قيودًا على أعباء العمل
قد تكون GTX 1050 مناسبة لبعض عمليات تحويل الترميز باستخدام NVENC/NVDEC، لكن أعباء عمل الذكاء الاصطناعي، مثل تعلّم الآلة الحالي في Immich، قد تتطلب إصدارات أكثر صرامة من CUDA، وسعة VRAM، ومتطلبات خاصة بالنموذج وإطار العمل. إن «رؤية Docker لوحدة GPU» لا تضمن أن كل تطبيق سيدعمها.
انسخ إعدادات التطبيق احتياطيًا قبل تغيير إعدادات بيئة التشغيل
لا تستبدل ملفات خدمة Docker أو إعدادات بيئة التشغيل يدويًا ما لم تتمكن من التراجع عن التغييرات. فقد يؤدي إعداد سيئ لبيئة تشغيل المضيف إلى إيقاف جميع تطبيقات Docker، وليس حاوية GPU فقط.
يوفر دليل حاويات GPU الحالي شرحًا أشمل للحد الفاصل بين البرامج الحالية والقديمة.
تحقّق من بيئة التشغيل داخل التطبيق المستهدف
يثبت nvidia-smi على المضيف فقط أن تعريف ZimaOS يرى البطاقة. افتح صدفة داخل حاوية GPU الفعلية والمفعّلة وتحقّق من الجهاز وبيئة التشغيل هناك؛ وإلا فقد يعود التطبيق بصمت إلى استخدام وحدة المعالجة المركزية، بينما تبدو وحدة GPU على المضيف سليمة.
افصل بين تحويل الترميز وتوافق الذكاء الاصطناعي
يُعد دعم NVENC/NVDEC، وقدرة CUDA الحسابية، وسعة VRAM، وإطارات العمل الخاصة بالتطبيق قيودًا مختلفة. فقد تتعامل بطاقة ما مع تحويل الترميز في Plex/Jellyfin، لكنها تظل قديمة جدًا أو محدودة السعة بالنسبة إلى نموذج تعلّم آلي حالي.
الأسئلة الشائعة
هل ينبغي أن أثبّت nvidia-container-toolkit باستخدام apt على ZimaOS؟
لا. استخدم مسار بيئة تشغيل NVIDIA الحالي في ZimaOS بدلًا من التعامل مع المضيف كما لو كان Ubuntu.
هل يمكنني تثبيت مجموعة الأدوات داخل Docker باستخدام Alpine؟
لا. يجب أن يكون تكامل بيئة التشغيل موجودًا على مضيف Docker.
كيف أعرف أن Docker يرى NVIDIA؟
تحقّق من docker info، ومن أمر تشغيل عفريت Docker وبيئة التشغيل، ثم تحقّق من الوصول إلى GPU داخل الحاوية المستهدفة.
هل يثبت nvidia-smi على المضيف أن تعلّم الآلة في Immich سيعمل؟
لا. فهو يثبت إمكانية رؤية التعريف على المضيف؛ ولا تزال الحاوية والتطبيق بحاجة إلى دعم متوافق لـ CUDA وVRAM وبيئة التشغيل.
