Best practices voor Dockerfile-beveiliging
Implementeer beveiligingsmaatregelen in uw Dockerfiles om kwetsbaarheden en het aanvalsoppervlak te beperken.
Best practices voor Dockerfile-beveiliging is een gratis Docker en de basis van DevOps-les op CoddyKit. Dit is les 3 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Docker en de basis van DevOps. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Docker en de basis van DevOps bevat in totaal 4 lessen.
Beveilig je Dockerfiles!
Welkom bij Beveiligingsrichtlijnen voor Dockerfiles! Een veilige toepassing begint met een veilige basis.
Je Dockerfile is niet alleen een buildscript; het is een blauwdruk voor de beveiliging van je toepassing. Slechte werkwijzen kunnen hier tot ernstige kwetsbaarheden leiden.
In deze les bekijken we belangrijke strategieën om je Docker-images te beveiligen en mogelijke aanvalsoppervlakken te beperken.

Begin met betrouwbare basis-images
De instructie FROM is je eerste verdedigingslinie. Kies altijd officiële, goed onderhouden basis-images van betrouwbare bronnen, zoals Docker Hub.
- Officiële images: Deze zijn geverifieerd en worden regelmatig bijgewerkt.
- Specifieke tags: Vermijd
latest. Gebruik specifieke versietags, bijvoorbeeldalpine:3.18, voor voorspelbaarheid en stabiliteit. - Minimale images: Kies voor versies als ‘slim’ of ‘alpine’. Deze bevatten minder pakketten, en dus minder mogelijke kwetsbaarheden.
Een veilige basis-image kiezen
Bekijk hoe het kiezen van een minimale basis-image met een specifieke versie de beveiliging kan verbeteren. Zo verklein je het aantal pakketten en hulpmiddelen die kunnen worden misbruikt.
FROM alpine:3.18
# This is better than:
# FROM ubuntu:latest
# FROM python:latest
# Alpine is a minimal Linux distribution,
# making the image smaller and more secure.Verklein de image
Elk bestand, pakket of elke afhankelijkheid die je aan je image toevoegt, vergroot het ‘aanvalsoppervlak’. Hoe minder software aanwezig is, hoe minder mogelijke kwetsbaarheden er zijn.
Installeer alleen wat absoluut noodzakelijk is om je toepassing uit te voeren. Verwijder buildhulpmiddelen en tijdelijke bestanden zodra je ze niet meer nodig hebt.
Opruimen na de installatie
Ruim bij het installeren van pakketten altijd de caches van pakketbeheerders op en verwijder onnodige bestanden. Hierdoor wordt de uiteindelijke image kleiner en verwijder je mogelijke informatielekken.
Gebruik voor images op basis van Debian, zoals Ubuntu, apt-get clean en verwijder /var/lib/apt/lists/* in dezelfde RUN-instructie.
FROM debian:stable-slim
RUN apt-get update && \
apt-get install -y --no-install-recommends \
curl \
git && \
apt-get clean && \
rm -rf /var/lib/apt/lists/*
# All in one RUN command to leverage Docker's caching and reduce layers.Voer niets uit als root!
Standaard worden processen in een Docker-container uitgevoerd als gebruiker root. Dat vormt een groot beveiligingsrisico!
Als een aanvaller controle over je container krijgt, heeft die rootrechten. Daarmee kan de aanvaller mogelijk uit de container ontsnappen of het hostsysteem compromitteren.
Maak altijd een speciale gebruiker zonder rootrechten aan en schakel met de instructie USER naar die gebruiker over.
Een gebruiker zonder rootrechten instellen
Zo maak je een nieuwe gebruiker aan en geef je Docker opdracht om volgende opdrachten als die gebruiker uit te voeren. Dit beperkt mogelijke schade aanzienlijk als de container wordt gecompromitteerd.
FROM alpine:3.18
# Create a non-root user and group
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
# Switch to the non-root user
USER appuser
CMD ["echo", "Hello from non-root user!"]Geen geheimen in je Dockerfile!
Neem nooit gevoelige informatie, zoals API-sleutels, databasewachtwoorden of privésleutels, rechtstreeks op in je Dockerfile en voeg deze ook niet toe aan je image.
Iedereen met toegang tot de image kan deze geheimen eenvoudig eruit halen, zelfs als je ze in een latere laag verwijdert.
Gebruik in plaats daarvan veilige methoden, zoals Docker Secrets, omgevingsvariabelen voor niet-gevoelige gegevens of Kubernetes Secrets tijdens runtime.
Geef de voorkeur aan COPY boven ADD
Met zowel de instructie COPY als ADD kun je bestanden naar je image kopiëren, maar over het algemeen heeft COPY de voorkeur vanwege de beveiliging en duidelijkheid.
COPY: Kopieert alleen lokale bestanden of mappen. Het gedrag is eenvoudig en voorspelbaar.ADD: Kan ook bestanden van URL's ophalen en gecomprimeerde archieven automatisch uitpakken, zoals tar- en gzip-archieven. Deze extra functionaliteit brengt mogelijke beveiligingsrisico's met zich mee, zoals het downloaden van niet-vertrouwde inhoud of het uitpakken van schadelijke archieven.
Houd het bij COPY, tenzij je de geavanceerde functies van ADD specifiek nodig hebt en de risico's begrijpt.
Beveiligingscontrole!
Welke van de volgende werkwijzen voor Dockerfiles is een cruciale stap om het aanvalsoppervlak en mogelijke kwetsbaarheden te verkleinen?
Je traject naar een veilige Dockerfile
Goed gedaan! Je hebt essentiële beveiligingsrichtlijnen voor Dockerfiles geleerd die de basis vormen voor veilige containerisatie:
- Begin met betrouwbare, minimale basis-images: Gebruik officiële, specifieke en slanke images.
- Verklein de image: Installeer alleen wat nodig is en ruim na installaties op.
- Voer uit als gebruiker zonder rootrechten: Beperk rechten om de gevolgen van mogelijke inbraken te verkleinen.
- Vermijd geheimen: Neem nooit gevoelige gegevens rechtstreeks op in je Dockerfile.
- Geef de voorkeur aan `COPY` boven `ADD`: Kies voor de voorspelbaardere en veiligere instructie `COPY`.
Door deze werkwijzen toe te passen, verbeter je de beveiliging van je gecontaineriseerde toepassingen aanzienlijk!
Leer Docker en de basis van DevOps met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 12
- Lessen
- 48
Veelgestelde vragen
Is de les “Best practices voor Dockerfile-beveiliging” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Docker en de basis van DevOps, waaronder “Best practices voor Dockerfile-beveiliging”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Docker en de basis van DevOps bevat in totaal 4 lessen.
Wat leer ik in “Best practices voor Dockerfile-beveiliging”?
Implementeer beveiligingsmaatregelen in uw Dockerfiles om kwetsbaarheden en het aanvalsoppervlak te beperken. Je oefent met Docker en de basis van DevOps door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Docker en de basis van DevOps te beginnen?
Ervaring vooraf is niet nodig. Docker en de basis van DevOps op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Best practices voor Dockerfile-beveiliging”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Docker en de basis van DevOps?
Ja. Elke les over Docker en de basis van DevOps bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Multi-stage builds voor efficiëntie
- Build caching benutten
- Best practices voor Dockerfile-beveiliging
- Images verkleinen met Slim- en Distroless-bases