Layers ו-Build Cache
כל הוראה ב-Dockerfile יוצרת layer (שכבה). Docker שומר את ה-layers ב-cache, ומשתמש מחדש ב-layer מוכן רק אם הוא וכל מה שמעליו לא השתנו. לכן הסדר חשוב: מסדרים את ההוראות מהפחות-משתנה למשתנה-ביותר, מעתיקים את קובץ התלויות ומתקינים אותן לפני העתקת הקוד — כדי שעריכת קוד לא תבטל את שכבת ההתקנה היקרה.
דמיין/י ערמת דפי שקף שקופים, אחד מעל השני. כשמשנים דף קרוב לראש הערמה, כל הדפים שמעליו מודפסים מחדש — אבל הדפים שמתחתיו נשארים בדיוק כמו שהיו.
- שכבה
- תוצר של הוראה אחת ב-Dockerfile — שינוי דיפרנציאלי במערכת הקבצים שנערם מעל השכבות הקודמות ונשמר ב-cache.
- build-cache
- אוסף ה-layers ששמורות מבנייה קודמת; Docker משתמש בהן מחדש כדי לדלג על הוראות שלא השתנו ולקצר את זמן הבנייה.
- ביטול cache
- הרגע שבו קלט של הוראה משתנה (למשל קובץ שהיא מעתיקה), מה שמאלץ את ההוראה ואת כל ההוראות שאחריה לרוץ מחדש במקום להישלף מה-cache.