Onafhankelijke vergelijking · geen betaalde rankings
Home / Blog / Technisch / Lichtgewicht Docker-images: bespaar tijd zonder afhankelijkheden te verbergen

Lichtgewicht Docker-images: bespaar tijd zonder afhankelijkheden te verbergen

Een Alpine-image van 40 MB versnelt de implementatie – totdat een ontbrekende lib of incompatibele musl de productie op vrijdagavond kapot maakt. Verlichten ja, afhankelijkheden verbergen nee.

Redactie Hébergeurs.eu 4 min Bijgewerkt 25 jun. 2026

De CI-pijplijn ging van twaalf naar vier minuten: het team schakelde over naar php:8.3-alpine, verwijderde de geschikte lagen en verkleinde de afbeelding van 680 MB naar 95 MB. De fusie wordt gevierd. Drie dagen later laadt de GD-extensie niet langer een TrueType-lettertype (musl en bibliotheken ontbreken) en produceert de miniatuurgenerator lege PNG's.

Lichtgewicht afbeeldingen versnel trekken, inzetten en koude start. Ze vereenvoudigen uw aanvraag niet automatisch. Het verwarren van “klein Dockerfile” en “stack inbegrepen” leidt tot images die snel opstarten maar geruisloos mislukken in een productierandgeval.

Grootte, lagen en wat echt tijd kost

Docker verzendt incrementele lagen. Een "zware" image met een goede lokale cache kan sneller worden geïmplementeerd dan een "lichte" image die alles bij elke commit ongeldig maakt, omdat COPY. . is te hoog geplaatst.

HendelTypische winstRisico
Alpenbasis/slank−50 tot 80% grootteLibc-incompatibiliteiten, ontbrekende pakketten
Multi-stageToolchain uit runtime verwijderenVergeet een runtime-lib (ssl, tzdata)
.dockerignoreStabielere cacheSluit een vereist bestand uit van de build
Combineert RUN aptMinder lagenAfbeeldingen moeilijk regel voor regel te patchen

Meet de pull + starttijd op uw register en uw host - niet alleen op docker-images lokaal.

Een slecht getest lichtgewicht image besteedt de kosten van nachtelijke foutopsporing uit.

Meertraps: afzonderlijke build en runtime

Klassiek PHP/Node-patroon:

  1. Stage builder: composer-installatie, npm run build, compilatie-extensies.
  2. Stage runtime: kopieer vendor/, public/build/, alleen gecompileerde binaire bestanden.

Vermijd het kopiëren van .git, tests, node_modules dev of documentatie. Controleer of de PHP-runtime-extensies (pdo_mysql, intl, opcache) zijn geïnstalleerd in de final, en niet alleen in builder.

Bij hosting met een privéregister (Scaleway, GitLab, Harbor) verlagen compacte eindimages ook de rekening voor opslag en uitgaand verkeer, vooral met tien microservices.

Alpine, slank, distributieloos: kies voor de libc

Alpine (musl): zeer klein, pakketten via apk. Veelvoorkomende problemen met wkhtmltopdf, sommige PECL-extensies, glibc-gerelateerde binaire bestanden.

Debian/Ubuntu slim (glibc): een iets zwaarder, voorspelbaarder ecosysteem voor PHP en Python.

Distroless / scratch: minimaal, vaak zonder shell — uitstekend voor Go of Java, veeleisender voor PHP-FPM waar foutopsporing telt.

Minimale testmatrix: opstarten van containers, statuscheck, kritisch bedrijfspad (upload afbeelding, PDF, TLS API-oproep).

.dockerignore en verborgen afhankelijkheden – de verkeerde kant op

Een overdreven agressieve .dockerignore die composer.lock of configuratiebestanden uitsluit, dwingt een impliciete composer update af voor de build - "lichtgewicht" afbeelding, niet-reproduceerbare builds.

Omgekeerd vergroot het opnemen van de volledige opslagplaats zonder te negeren de context die naar de daemon wordt verzonden en wordt de cache bij elke documentcommit verbroken.

Geef expliciet aan wat er in de context komt: lockfiles, patches, aangepaste extensies. Documenteer de vereiste systeembibliotheken in het Dockerbestand (commentaar + RUN apk add --no-cache...).

Beveiliging, CVE en “nieuwste” afbeeldingen

FROM node:latest of php:8-apache zonder een gepatchte tag wordt opgeblazen en vertroebelt updates. Pin php:8.3.12-fpm-bookworm en automatiseer het opnieuw opbouwen op CVE.

Scan (Trivy, Grype) op de uiteindelijke afbeelding – niet alleen op het Dockerbestand. Een minimalistische alpenbasis met een kwetsbare opensl blijft een risico.

De top: de lichtheid die onbegrip maskeert

Tijd besparen tijdens het pullen is waardeloos als je een uur mentaal verspilt aan het opnieuw opbouwen van wat het oude Debian-image impliciet had geïnstalleerd.

Beslis en ga vooruit zonder blinde vlek

Documenteer runtime-libs, adopteer meertraps, zet de basis vast, test rook in CI. Vergelijk alpine versus slim op uw stack, niet op een generieke benchmark.

Om register-, CI-runners en Docker VPS in Europa te hosten, zie onze overzicht en vergelijker. De gidsen hebben betrekking op het inlijsten van containers.

Controlelijst vrijgeven: blanco afbeelding ophalen, gezondheid uitvoeren, een bedrijfsscenario uitvoeren, CVE-scan uitvoeren – voordat u de bespaarde megabytes viert.

Veelgestelde vragen

Is Alpine nog steeds de juiste keuze voor een licht beeld?

Nee - test musl vs glibc voor je stapel; debian-slim of distroless zijn mogelijk stabieler.

Wat levert een meerfasige build op?

Scheidt compilatie en runtime; de uiteindelijke afbeelding bevat niet de toolchain.

Hoe kan ik de pull versnellen zonder de veiligheid te verminderen?

Cachelagen, .dockerignore, vastgezette tags: snelheid komt zowel van de cache als van de grootte.

Heb ik een schaal nodig in de productieimage?

Afweging van debuggen versus aanvalsoppervlak; kies op basis van uw externe waarneembaarheidsvermogen.


Een licht beeld wordt beoordeeld door inzet op vrijdagavond – niet door ‘docker images’ op maandagochtend.

Vergelijk Europese providers

Filter op compliance, locatie en gebruikssituatie — open daarna de fiches om het echte bereik te controleren.

Blader door het overzicht
Blog

Gerelateerde lectuur

Alle artikelen →