Η βελτιστοποίηση εικόνων Docker περιλαμβάνει τη μείωση μεγέθους (μικρότερες, ταχύτερες, ασφαλέστερες) και τη βελτίωση απόδοσης κατασκευής (ταχύτερες κατασκευές μέσω caching). Οι τεχνικές περιλαμβάνουν ελάχιστες βασικές εικόνες, κατασκευές πολλαπλών σταδίων, βελτιστοποίηση στρώσης, BuildKit και προσεκτικό σχεδιασμό Dockerfile.
Μείωση μεγέθους εικόνας
✓ MINIMAL base images:
- alpine (tiny, ~5MB) — but musl libc can cause compatibility issues for some apps
- slim variants (e.g. python:3.12-slim) — smaller than full, fewer compat issues
- DISTROLESS — only the app + runtime, NO shell/package manager (smallest, most secure)
- scratch — empty base (for static binaries, e.g. Go) → minimal image
✓ MULTI-STAGE builds — build with tools, ship only the artifact (huge size savings)
✓ Combine RUN layers + clean up IN the same layer:
RUN apt-get update && apt-get install -y x && rm -rf /var/lib/apt/lists/*
(cleanup in a SEPARATE layer doesn't shrink the image — the files are in the earlier layer)
✓ .dockerignore — keep junk out of the context/image
✓ Remove caches, temp files, dev dependencies in production images
