هل يستهلك Docker مساحة كبيرة على Mac؟ استعدها بأمان
فريق AskClean · آخر تحديث 2026-11-02
شغّل docker system df -v لمعرفة ما إذا كانت المساحة تذهب إلى images أو containers متوقفة أو build cache أو وحدات التخزين (volumes). نظّف الفئة التي شخّصتها أولًا، واحتفظ بـ volumes المسماة ما لم تكن بياناتها منسوخة احتياطيًا، ولا تحذف Docker.raw أو تنقله يدويًا في Finder.

لماذا يبدو Docker ضخمًا على macOS
يشغّل Docker Desktop حاويات Linux داخل آلة افتراضية خفيفة، ويحفظ images وطبقات الكتابة في containers وbuild cache وvolumes داخل ملف صورة قرص كبير يُسمى غالبًا Docker.raw، لا في مجلدات عادية تعدّلها في Finder. وقد تختلف السعة القصوى للملف وحجمه الظاهر والمساحة التي يستخدمها Docker فعلًا، لأن الملف المتناثر (sparse) قد يحجز نطاقًا منطقيًا كبيرًا ويشغل مساحة فعلية أقل. وحذف Docker.raw يتجاوز إدارة Docker لعناصره وقد يدمر كل images وcontainers وvolumes المحلية دفعة واحدة، ونقله في Finder قد يعطل Docker Desktop.
راجع قبل prune
شغّل Docker Desktop، ثم استخدم docker system df -v لتفصيل الاستخدام حسب الفئة، وdocker ps -a وdocker image ls وdocker volume ls لربط كل عنصر بمشروعه. لا تعني القيمة RECLAIMABLE أن الحذف آمن: قد تشترك عدة containers في image واحدة فلا يعود حجمها كله بحذف وسم واحد، وقد يحوي volume غير مرتبط بأي container النسخة الوحيدة من قاعدة بيانات. وسجّل حد استخدام القرص وموقع صورة القرص في Docker Desktop Settings > Resources قبل تغييرهما.
- شغّل docker system df -v واحفظ النتيجة مع تاريخها.
- اعرض containers بالأمر docker ps -a وimages بالأمر docker image ls، واربط ما يلزم منها بالمشاريع الحالية أو بسير عمل CI.
- اعرض volumes بالأمر docker volume ls، وحدد مالك كل volume يحمل بيانات، وانسخه احتياطيًا إن كانت بياناته مهمة.
- افحص build cache بالأمر docker builder du، ثم نفّذ prune على الفئة التي تفسر نمو المساحة وحدها.
- أعد تشغيل docker system df -v، وتأكد من أن المشاريع المهمة ما زالت تعمل، ثم راجع المساحة الحرة في macOS بعد أن يستعيد Docker Desktop كتل القرص.
عدم ارتباط volume بأي container قيد التشغيل لا يثبت أن بياناته قابلة للحذف؛ فمشاريع Compose وقواعد البيانات المتوقفة وعمليات الاسترداد المؤقتة كثيرًا ما تترك volumes مشروعة غير مرتبطة.
استخدم أوامر محددة
احذف containers المتوقفة التي تعرفها بالأمر docker container rm؛ فيضيع ما في طبقة الكتابة الخاصة بها، لكن volumes المسماة تبقى ما لم تطلب حذفها صراحة. واحذف image غير مستخدمة بالأمر docker image rm، وإن أبلغك Docker أن container ما زالت تشير إليها فافحصها بدل فرض الحذف. وينظف docker builder prune ذاكرة البناء غير المستخدمة، على أن يصبح البناء التالي أبطأ. أما docker system prune فيحذف افتراضيًا containers المتوقفة والشبكات غير المستخدمة وimages المعلّقة (dangling) وذاكرة البناء غير المستخدمة، ولا يحذف volumes؛ يوسّع الخيار -a الحذف إلى كل image لا تستخدمها أي container، ويضيف الخيار --volumes الـ volumes المجهولة التي قد تحمل بيانات حقيقية، فلا تستخدم أيًا منهما قبل المراجعة.
احمِ volumes والقرص الافتراضي
صُممت volumes لتبقى بعد حذف containers، وقد يحوي volume لقاعدة PostgreSQL أو MySQL النسخة المحلية الوحيدة من البيانات؛ فعاملها كالمستندات لا كالذاكرة المؤقتة حتى تعرف مالكها ونسختها الاحتياطية. انسخ قواعد البيانات احتياطيًا بأداة التصدير الأصلية أو بإجراء مُجرَّب، فنسخ مجلد من داخل volume لقاعدة بيانات تعمل لا يضمن نسخة متسقة. وغيّر حد القرص أو موقع صورة القرص من Docker Desktop Settings لا من Finder، وقد تتأخر استعادة المساحة على Mac بعد الحذف، فقِس مجددًا قبل حذف المزيد. يكشف AskClean أثر Docker على Mac، لكنه يصنف Docker.raw وبيانات Docker في Group Containers وبيانات الاعتماد وimages وvolumes على أنها مُدارة من Docker أو لا تُحدَّد أبدًا.
مقارنة القرارات والمخاطر
لماذا يكبر Docker.raw على Mac؟ افحص الاستخدام بـ docker system df، ونظّف containers المتوقفة وimages وbuild cache بأمان، واحمِ volumes والقرص الافتراضي.
| القرار | مكان التحقق | حد الأمان |
|---|---|---|
| لماذا يبدو Docker ضخمًا على macOS | Docker.raw / Docker Desktop Settings | يشغّل Docker Desktop حاويات Linux داخل آلة افتراضية خفيفة، ويحفظ images وطبقات الكتابة في containers وbuild cache وvolumes داخل ملف صورة قرص كبير يُسمى غالبًا Docker.raw، لا في مجلدات عادية تعدّلها في Finder. |
| راجع قبل prune | docker system df -v / docker ps -a / docker volume ls | شغّل Docker Desktop، ثم استخدم docker system df -v لتفصيل الاستخدام حسب الفئة، وdocker ps -a وdocker image ls وdocker volume ls لربط كل عنصر بمشروعه. |
| استخدم أوامر محددة | docker container rm / image rm / builder prune / system prune | احذف containers المتوقفة التي تعرفها بالأمر docker container rm؛ فيضيع ما في طبقة الكتابة الخاصة بها، لكن volumes المسماة تبقى ما لم تطلب حذفها صراحة. |
| احمِ volumes والقرص الافتراضي | volumes / Docker Desktop Settings | صُممت volumes لتبقى بعد حذف containers، وقد يحوي volume لقاعدة PostgreSQL أو MySQL النسخة المحلية الوحيدة من البيانات؛ فعاملها كالمستندات لا كالذاكرة المؤقتة حتى تعرف مالكها ونسختها الاحتياطية. |
الأسئلة الشائعة
لماذا Docker.raw كبير جدًا؟
لأنه القرص الافتراضي الذي يضم images وcontainers وذاكرة البناء وvolumes الخاصة بـ Docker Desktop، وقد يختلف حجمه المنطقي أو الأقصى عن الكتل المستخدمة فعلًا على Mac. افحص docker system df -v وDocker Desktop Settings قبل أي إجراء.
هل يحذف docker system prune وحدات التخزين (volumes)؟
ليس افتراضيًا. يوسّع الخيار --volumes التنظيف إلى volumes المجهولة، وحتى volume يبدو غير مستخدم قد يحمل بيانات قاعدة بيانات مهمة؛ فانسخه احتياطيًا وحدد مالكه قبل الحذف.
هل يمكن حذف Docker.raw في Finder؟
لا تحذفه ولا تنقله يدويًا؛ فقد يمحو ذلك كل بيانات Docker المحلية أو يعطل Docker Desktop. استخدم سطر أوامر Docker للعناصر، وDocker Desktop Settings لصورة القرص.
المصادر