מדוע ניקוי דוקר אוטומטי הוא חיוני לניהול חלל

מיכלי Docker מציעים סביבה קלה ועקבית לפיתוח יישומים, בדיקות, פריסה. עם זאת, הנוחות של ספינינג במהירות ודמיע מכולות מגיעה בעלות: נפיחות דיסק.לאורך זמן, תמונות מתפתלות, חדלו מכולות, כרכים לא בשימוש, ושמאל לבנות cache מצטבר, צריכת שטח דיסק יקר.שמאל לא נבדק, קלוטר זה יכול להוביל לביצועים מודרגים, פריסות כושלות, אפילו לא מנקה, אבל לא ניתן גם לנקות מחדש מערכת אחסון אוטומטית.

יצירה יחידה עשויה לאסוף ג'יגה-ביאטים של FLT:0 (תמונות דוקר) בשימוש ב-Docker (Docker ImagesveFLT:1 בתוך שבועות. בסביבות הייצור, שבו מכולות מעודכנים לעתים קרובות או מוחלפות, הבעיה היא במהירות ניקוי ידני הוא שגיאה-prone ולעתים קרובות מוזנח. על ידי יישום אסטרטגיה אוטומטית, מתוכננת, לחסל את עבודת הניחושים ושחרר משאבים עבור מה שחשוב ביותר: הפעלת יישומים.

הבנה של טיהור דוקר

דוקר מספק חבילה של פקודות להסרת נתונים לא בשימוש.החזק ביותר הוא (FLT:0), אשר יכול לכוון מכולות, תמונות, כרכים ורשתות. בואו לשבור את האפשרויות המרכזיות:

  • (ב) ,0) ,"מ"ל" (ב)"ה', "הוציאו את כל מיכלי החתומים, את כל התמונות המנופלות ואת הרשתות הלא מנוצלות.
  • (ב) ויקרא י"א:2 ,2 ,2 , ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) ויקרא י"א: "וַיְּאֶת הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא הוּא .
  • [ה]ב"ה: [ה], [ה], [ה],]"[דרוש מקור], "הצינור את כל הדגלים: הסרת כוח ללא אישור, כל התמונות והכרכים הלא מנוצלים.

(ב) ב[[1924]], [[1924]], [[1924]]]], [[1924]]]], [[1924]]]], [[1924]]]], [[1924]]]]]], [[1924]]]]]], [[1924]]]]]], [[1924]]]]]]]], [[1924]]]]]], [[1924]]]]]]]]

שלב-בי-שלב ההתקנה של Cron- Based Automation

במערכות לינוקס, cron נשאר כלי לוח הזמנים הפשוט ביותר עבור משימות חוזרות.כדי להפוך את Docker ניקוי, אתה צריך רק כמה שורות ב crontab שלך.

1 בדוק את הדרך של Docker Command Path

עבודות Cron לרוץ עם סביבה מוגבלת.קבע את הנתיב המלא של קונסול 10.

which docker

בדרך כלל זה חוזר (ב) ל'התחילה' (ב) במצוות ה'.

2.עריכה את Crontab

ריצה:

crontab -e

אם זו הפעם הראשונה שלך, תתבקש לבחור עורך.לוסיף קו כמו הבא לרוץ מדי יום בשעה 2:00 בבוקר:

0 2 * * * /usr/bin/docker system prune -af --volumes > /dev/null 2>&1

(ב) ,הופנה לאחור של עוקץ ומצנחה לפסול כדי להימנע מלמלא את תיבת הדואר שלך עם פלט.תכוונן את לוח הזמנים הנדרש (למשל, FLT:16 לשבוע).

3.תבדקו את העבודה

לפני שתלוי על קבידון, להפעיל את הפקודה באופן ידני כדי להבטיח שהיא עובדת כפי שמצופה:

sudo /usr/bin/docker system prune -af --volumes

אם אתה משתמש בתקנה לא-בסיסית, ייתכן שיהיה עליך להוסיף (FLT:18) או להפעיל את העבודה כמשתמש בקבוצת ה-FLT:19.

אוטומציה מתקדמת עם Timers

בעוד cron הוא מספיק עבור רבים, לוח זמנים מציעים יותר logging, טיפול תלותיות, ושילוב עם שאר מערכת Init.כאן איך ליצור ציר עבור Docker ניקוי.

1.צרו יחידת שירות

להציל את הדברים הבאים:

[Unit]
Description=Docker system prune
Wants=docker.service
After=docker.service

[Service]
Type=oneshot
ExecStart=/usr/bin/docker system prune -af --volumes
User=root
StandardOutput=journal

2.צרו יחידת זמן

להציל את ה-F:22

[Unit]
Description=Run Docker cleanup daily

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target

3.אפשר והתחל את הזמן

sudo systemctl daemon-reload
sudo systemctl enable docker-cleanup.timer
sudo systemctl start docker-cleanup.timer

בדוק עם (FLT:25 גישה זו כתוביות יומן מערכת, מה שהופך את זה קל יותר ביקורת ניקוי ריצות.

קידוד נקי של פילטרים למדיניות קשבת

יזום אגרסיבי הוא בטוח עבור רוב סביבות הפיתוח, אבל מערכות הייצור עשויות לדרוש (FLT:0retentions מדיניות FLT:1 לדוגמה, ייתכן שתרצה לשמור תמונות מתויגות כמו FLT:26 או FLT:27, או רק להסיר משאבים ישנים יותר מ 48 שעות.

פילטר by Age

כדי לגרות תמונות ומכלים שאינם בשימוש מעל 24 שעות:

docker system prune -af --filter "until=24h" --volumes

הפילטר (FLT:29) עובד עבור תמונות ומכלים כאחד.שלב עם 30 פעמים עבור כללים מורכבים יותר.

כולל משאבים ספציפיים

(ב) אין רשימה של תלמוד, אך ניתן להשתמש בתוויתות למניעת הסרת כלי שיט חשובים או תמונות (למשל, FLT:31), ולאחר מכן להשתמש במסנן תווית שלילית (עדיין לא נתמך ב-FLT:32) A Workroundupround for משלבת את FLT:33 עם תסריטים מותאמים אישית אשר בודקים תוויות לפני deletion, שימוש בכלי כמו:0Fcker: 7.

מעקב אחר חלל הדיסק וניקוי יעילות

אוטומציה היא רק טובה כמו ניטור שלך. להגדיר התראות לעקוב אחר השימוש בדיסק לאחר כל ניקוי.גישות פשוטות כוללות:

  • (ב) ב[[1924]], [[1924]], [[1924]]]], [[1924]]]]
  • שימוש בכלי כמו ההרחבה:0igral (בשיתוף פעולה) ,2 (FLT:0) כדי לשלוח מדדים ל-InfluxDB או Prometheus.
  • [15] ויקרא י"ד: "ה' י"א: ויקרא י"ד:2 ויקרא יט" (בראשית כ"ד, כ"ד): "וַיָּבְתָּבְתָּבָר" (בראשית כ"ד).

אם השימוש בדיסק נשאר גבוה, לחקור באמצעות שימוש ב-FLT:35 כדי לראות היכן שטח נצרך.אשמים נפוצים כוללים בניית כאב במערכות CI או כרכים גדולים שאינם הוסרו כי הם עדיין מתייחסים על ידי מיכלים עצורים.

שיטות טובות ביותר להפקה

1 תמיד השתמש בגישה מגובשת

התחל עם ריצה יבשה שבועית באמצעות דגל ללא דגל (FLT:37) (לראות מה יוסר).

2. לתאם עם CI /CD Pipelines

אם מערכת הבנייה שלך יוצרת תמונות זמניות רבות, לוח הזמנים לאחר בנייה או במהלך חלונות דלתיים נמוכים. להימנע מריצה תוך כדי בנייה פועל כדי למנוע הסרת מקרית של שכבות ביניים עדיין בשימוש.

גיבוי נתונים קריטיים

יש לגיבוי של מאגרי מידע או העלאת משתמשים לפני כל נפח אגרסיבי שרץ. השתמש בכלים לניהול נפח דוקר כמו FLT:38 עם FLT:39 כדי לקשור אחסון חיצוני לא יושפע על ידי prune.

4.להריץ את השימוש כמשתמש לא-Root

עבור אבטחה, להימנע מריצה של עבודות כפירה, אלא אם כן יש צורך להוסיף את המשתמש שלך לקבוצה (FLT:40) ולרוץ את העבודה ללא FLT:41 עם זאת, לציין כי כל משתמש בקבוצת FLT:42 יש ביעילות גישה שורש המארח; להעריך את הסיכון בסביבה שלך.

פעילות ניקוי נקיה

מיפוי הפלט לקובץ יומן במקום FLT:43 עבור ביקורת:

0 2 * * * /usr/bin/docker system prune -af --volumes >> /var/log/docker-cleanup.log 2>&1

בדוק באופן קבוע את יומן שגיאות או הסרתם בלתי צפויים.

מלכודות נפוצות וכיצד להימנע מהם

  • (ב) ,0) ,העברת מידע על מיכלים: (ה) ,(הדגל ה-FLT:45 מסיר את כל התמונות הלא בשימוש, כולל שכבות ביניים שעשויות להיות צורך עבור בנייה מחדש של עתיד, לשקול הגדרת מסנן קצר (FLT:46) או ריצה של [15] ללא LT:48.
  • (ב) ב[[1924]], [[1924]]]], [[1924]]]]]], [[1924]]]], [[1924]]]]]], [[1924]]]]]]]], [[1924]]]]]]]], [[1924]]]]]], [[1924]]]]]]]], [[1924]]]]]]]], [[1924]]]]]]]]]]]], [[1924]]]]
  • (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) ,0) בעיות סביבתיות של ק"מ: דוקר לא יכול להיות ברשות כאשר cron פועל.

כלים חלופיים וגישות

בעוד ש- Docker Native פקד את רוב הצרכים, כמה כלים של צד שלישי מספקים תכונות מתקדמות:

  • (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) [15] ,5 ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇
  • (ב) ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇ ⁇

(ב) לסביבות Kubernetes, יש לשקול שימוש ב-FLT:0) איסוף אשפה של אשפה (FLT:1) וכלים כמו FLT:2KuredFLT 3 או FLT:4Deschedulerph:5 עבור ניקוי ברמה של ללא דיה.

מסקנה

אוטומטיות של Docker מיכל ניקוי הוא פשוט אך קריטי בפועל לשמירה על מארח דוקר בריא ויעיל.אם אתה בוחר cron, לוח זמנים ממומש, או כלי צד שלישי, המפתח הוא לרוץ באופן קבוע עם מדיניות שמאזנת חיסכון דיסק נגד הסיכון של הסרת נתונים שאתה צריך.התחל שמרנים עם מסננים ולוגים, ואז להדק את לוח הזמנים שלך גדל ככל שהאבטחה שלך מתפתחת על ידי שילוב של שגרה, לא מאובטח, ומאובטח, לא הופך את הכונן אוטומטי, ולא מאובטח, ולא מאובטח, לא הופך להיות מאובטח של הבקבוק שלך.