AskClean

Docker תופס יותר מדי מקום ב-Mac? כך מפנים מקום בבטחה

צוות AskClean · עודכן 2026-11-02

הריצו docker system df -v כדי לגלות מה תופס את המקום של Docker — images, containers עצורים, build cache או volumes. נקו קודם רק את הקטגוריה שזיהיתם, השאירו named volumes כל עוד הנתונים שבהם לא מגובים, ולעולם אל תמחקו או תעבירו את Docker.raw ידנית ב-Finder.

איור איזומטרי של אחסון Docker: בלוקים של containers, שכבות images, שברי cache ו-volume נתונים מוגן
האחסון של Docker הוא כמה קטגוריות בתוך דיסק וירטואלי אחד; בדקו כל קטגוריה לפני prune.

למה Docker נראה ענק ב-macOS

Docker Desktop מריץ containers של Linux בתוך מכונה וירטואלית קלה, ושומר את ה-images, את שכבות הכתיבה של ה-containers, את ה-build cache ואת ה-volumes בתוך קובץ תמונת דיסק גדול — בדרך כלל Docker.raw — ולא כתיקיות רגילות שעורכים ב-Finder. הקיבולת המרבית של הקובץ, הגודל שמוצג עבורו והמקום שבאמת בשימוש הם לא תמיד אותו מספר, לכן התחילו מהנתונים של Docker עצמו ומהמקום הפנוי ב-macOS. מחיקת Docker.raw עוקפת את Docker ועלולה להשמיד בבת אחת את כל ה-images, ה-containers וה-volumes המקומיים; גם העברתו ב-Finder עלולה לשבש את Docker Desktop.

בדקו לפני prune

הריצו docker system df -v לפירוט השימוש, ואז docker ps -a, docker image ls ו-docker volume ls כדי לשייך כל פריט לפרויקט שמשתמש בו. פרשו את Reclaimable בזהירות: image אחד יכול לשמש כמה containers, ולכן מחיקת תגית אחת לא בהכרח תחזיר את כל הגודל המדווח; ו-volume שאין לו container פעיל עשוי עדיין להכיל את העותק היחיד של מסד נתונים. בדקו גם ב-Docker Desktop Settings > Resources את מגבלת השימוש בדיסק ואת מיקום תמונת הדיסק, ורשמו את הערכים לפני כל שינוי.

  1. הריצו docker system df -v ושמרו את הפלט עם התאריך.
  2. הציגו את ה-containers עם docker ps -a וזהו עומסי עבודה עצורים שבאמת אינם נחוצים עוד.
  3. הציגו את ה-images עם docker image ls ושייכו תגיות חשובות לפרויקטים או לתהליכי CI פעילים.
  4. הציגו את ה-volumes עם docker volume ls, וזהו לכל volume שמכיל נתונים מי הבעלים שלו ואם יש לו גיבוי.
  5. בדקו את ה-build cache אחרון, עם docker builder du או עם הפקודות שה-builder הפעיל שלכם תומך בהן.

גם volume שאין container פעיל שמחובר אליו עשוי להכיל נתונים חשובים: פרויקטי Compose, מסדי נתונים עצורים ותהליכי שחזור חד-פעמיים משאירים לעיתים קרובות volumes מנותקים לגיטימיים.

השתמשו בפקודות ממוקדות

הסירו containers מיושנים שזיהיתם עם docker container rm, ו-image שאינו בשימוש עם docker image rm. הסרת container עצור מוחקת את השינויים בשכבת הכתיבה שלו, אבל לא את ה-named volumes שלו, אלא אם ביקשתם זאת במפורש. הפקודה docker builder prune מנקה build cache שאפשר לבנות מחדש מקובצי Dockerfile, אבל הבנייה הבאה תהיה איטית יותר. הפקודה docker system prune מוחקת כברירת מחדל containers עצורים, רשתות שאינן בשימוש, images יתומים (dangling) ו-build cache שאינו בשימוש; הדגל -a מרחיב את הניקוי לכל image שאינו משמש container, והדגל --volumes מוסיף volumes אנונימיים שעשויים להכיל נתונים אמיתיים — אל תוסיפו אותם בלי בדיקה. אחרי כל שלב הריצו שוב docker system df -v, ודאו שפרויקטים חשובים עולים כרגיל ובדקו את המקום הפנוי ב-macOS.

הגנו על volumes ועל הדיסק הווירטואלי

ה-volumes נועדו להחזיק מעמד גם אחרי שה-container נמחק, ו-volume של PostgreSQL או MySQL עשוי להכיל את העותק המקומי היחיד של הנתונים — התייחסו אליהם כמו למסמכים, לא כמו למטמון. גבו מסדי נתונים בכלי הייצוא של מסד הנתונים או בתהליך גיבוי volumes שבדקתם; העתקת תיקייה מתוך volume של מסד נתונים פעיל אינה גיבוי עקבי. את מגבלת הדיסק ואת מיקום תמונת הדיסק שנו רק דרך Docker Desktop Settings, לעולם לא ב-Finder, ולפני איפוס להגדרות היצרן, הסרה או שינוי הרסני של גודל הדיסק ייצאו images נחוצים וגבו volumes בנפרד. AskClean מציג את האחסון ש-Docker תופס בצד ה-Mac, אבל מסמן את Docker.raw, נתוני ה-group container, פרטי הגישה, ה-images וה-volumes כנתונים שמנוהלים בידי Docker או שלעולם אינם נבחרים לניקוי.

השוואת החלטות וסיכונים

בדקו כמה מקום Docker Desktop תופס ב-Mac, נקו בבטחה containers עצורים, images ו-build cache, והגנו על volumes ועל הדיסק הווירטואלי Docker.raw.

החלטההיכן לבדוקגבול הבטיחות
למה Docker נראה ענק ב-macOSDocker.raw / Docker Desktop SettingsDocker Desktop מריץ containers של Linux בתוך מכונה וירטואלית קלה, ושומר את ה-images, את שכבות הכתיבה של ה-containers, את ה-build cache ואת ה-volumes בתוך קובץ תמונת דיסק גדול — בדרך כלל Docker.raw — ולא כתיקיות רגילות שעורכים ב-Finder.
בדקו לפני prunedocker system df -v / docker ps -a / docker volume lsהריצו 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, ו-image שאינו בשימוש עם docker image rm.
הגנו על volumes ועל הדיסק הווירטואליvolumes / Docker Desktop Settingsה-volumes נועדו להחזיק מעמד גם אחרי שה-container נמחק, ו-volume של PostgreSQL או MySQL עשוי להכיל את העותק המקומי היחיד של הנתונים — התייחסו אליהם כמו למסמכים, לא כמו למטמון.

שאלות נפוצות

למה Docker.raw כל כך גדול?

זה הדיסק הווירטואלי שמכיל את ה-images, ה-containers, ה-cache וה-volumes של Docker Desktop בצד ה-Linux. הגודל הלוגי או המרבי שלו עשוי להיות שונה מהבלוקים שבאמת בשימוש ב-Mac, לכן בדקו את docker system df -v ואת Docker Desktop Settings לפני שאתם פועלים.

האם הפקודה docker system prune מוחקת volumes?

לא כברירת מחדל. הוספת הדגל --volumes מרחיבה את הניקוי ל-volumes אנונימיים. גם volume שנראה לא בשימוש עשוי להכיל נתוני מסד נתונים חשובים, לכן גבו אותו וזהו את הבעלים שלו לפני ההסרה.

אפשר למחוק את Docker.raw ב-Finder?

אל תמחקו ואל תעבירו אותו ידנית: זה עלול להשמיד את כל המצב המקומי של Docker או לשבש את Docker Desktop. נהלו את האובייקטים דרך ה-CLI של Docker ואת תמונת הדיסק דרך Docker Desktop Settings.

מקורות

המשיכו לנקות את אחסון הפיתוח