Moet je telkens weer sudo typen voor elke Docker-opdracht? Dan is dit artikel voor jou.
Standaard beperkt Docker de toegang tot de daemon: alleen root en leden van de docker-groep mogen opdrachten uitvoeren. Dat is veiliger voor je systeem, maar irritant als je de hele dag met containers werkt. De docker-groep bestaat precies om deze reden – omDocker te gebruiken zonder dat sudo-wachtwoorden je vertragen.
Zodra je jezelf toevoegt aan de docker-groep merk je meteen verschil. Je kunt docker build, docker run en andere opdrachten uitvoeren zonder permissiefouten of wachtwoordprompts.
In dit artikel leer je precies hoe je gebruikers toevoegt aan de docker-groep op verschillende systemen, welke beveiligingsrisico's je in de gaten moet houden en hoe je je systeem beschermt terwijl je Docker makkelijker maakt in gebruik.
Wanneer je begint te werken met Docker, loop je al snel tegen permissieproblemen aan als je het niet goed hebt ingesteld.
Laten we uitpluizen wat de docker-groep precies is en waarom deze belangrijk is voor je workflow.
Definitie en functionaliteit
De docker-groep is een systeemgebruikersgroep die leden toestemming geeft om de Docker-daemon te gebruiken zonder sudo-rechten.
Wanneer je Docker installeert op Linux-systemen, wordt deze groep meestal automatisch aangemaakt. Het socketbestand van Docker (/var/run/docker.sock) is eigendom van root maar heeft groepsrechten toegewezen aan de docker-groep, en zo werkt deze toegangscontrole.
Gebruikers in deze groep kunnen images bouwen, containers draaien, netwerken beheren en andere Docker-activiteiten uitvoeren zonder sudo voor de opdrachten te zetten. Dat betekent minder typen en geen wachtwoordprompts tijdens het werken met containers. Als je Docker-opdrachten probeert uit te voeren zonder in deze groep te zitten, krijg je "permission denied"-fouten, wat uiteindelijk je voortgang vertraagt.
Beveiligingsimplicaties van lidmaatschap
Gebruikers toevoegen aan de docker-groep brengt echte beveiligingsrisico's met zich mee die je niet moet negeren.
Leden van de docker-groep kunnen root-rechten verkrijgen op het hostsysteem. Dat kan omdat Docker toestaat om hostmappen in containers te mounten, inclusief gevoelige systeemmappen. Iemand met Docker-toegang kan een container maken die het volledige root-bestandssysteem mount en elk bestand op de host aanpassen.
Container breakout-kwetsbaarheden vormen een ander risico, omdat ze aanvallers mogelijk uit de containerisolatie laten ontsnappen.
Voeg alleen vertrouwde gebruikers toe aan de docker-groep, en beschouw het zelfs dan als gelijkwaardig aan het geven van root-toegang. Veel securityprofessionals raden aan het lidmaatschap van de docker-groep te beperken tot alleen diegenen die het echt nodig hebben voor hun dagelijkse werk.
Stapsgewijze implementatie
Nu je begrijpt wat de docker-groep is en wat de implicaties zijn, is het tijd voor de daadwerkelijke setup.
De docker-groep aanmaken
In de meeste gevallen hoef je de docker-groep niet handmatig aan te maken, omdat deze automatisch wordt aangemaakt tijdens de installatie van Docker. Je kunt controleren of de groep bestaat met:
Dit commando maakt de docker-groep op je systeem aan, maar is beperkt tot Linux-besturingssystemen.
Voor macOS kun je de officiële instructies van Apple volgen, omdat de groep via de GUI wordt aangemaakt. Het proces is vergelijkbaar voor Windows-besturingssystemen.
Na het volgen van de stappen zou je moeten zien dat je groep is aangemaakt:
Afbeelding 2 - Controleren of de docker-groep bestaat (2)
Gebruikers aan de groep toevoegen
Om je huidige gebruiker toe te voegen aan de docker-groep, voer je dit commando uit op Linux-besturingssystemen:
De vlag -a betekent "append" en -G specificeert de groep waar je de gebruiker aan wilt toevoegen. De variabele $USER gebruikt automatisch je huidige gebruikersnaam.
Voor macOS en Windows kun je gebruikers toevoegen via Systeeminstellingen of het Configuratiescherm – zet gewoon een schakelaar om om alle gewenste gebruikers toe te voegen:
Afbeelding 3 - Gebruikers toevoegen aan de groep
Nadat je jezelf aan de groep hebt toegevoegd, moet je uit- en weer inloggen om de wijzigingen door te voeren. Je huidige sessie herkent het nieuwe groepslidmaatschap pas als je volledig uitlogt. Op sommige systemen moet je mogelijk opnieuw opstarten:
Je zou "docker" tussen je groepslidmaatschappen moeten zien staan:
Afbeelding 4 - Gebruikersgroepen bekijken
Veelvoorkomende problemen oplossen
Als je nog steeds "permission denied"-fouten krijgt nadat je jezelf aan de groep hebt toegevoegd, moet je mogelijk de Docker-socketrechten corrigeren:
sudochown root:docker /var/run/docker.sock
sudochmod660 /var/run/docker.sockMogelijk gemaakt door
Een ander veelvoorkomend probleem treedt op wanneer de Docker-service opnieuw start, wat de socketrechten kan resetten. Als Docker is gestart nadat je groepswijzigingen hebt doorgevoerd, probeer dan de Docker-service te herstarten:
Controleer bij aanhoudende permissieproblemen of je Docker-serviceconfiguratie correct is. Op sommige systemen kan Docker zijn geconfigureerd om een andere groepsnaam of socketlocatie te gebruiken. Je kunt het configuratiebestand van de Docker-daemon controleren op /etc/docker/daemon.json of servicebestanden in /lib/systemd/system/docker.service.
Onthoud dat permissiewijzigingen die je doorvoert pas van toepassing zijn op je huidige sessie nadat je uit- en weer inlogt. Dit is de nummer één oorzaak van "ik heb de wijzigingen gedaan, maar het werkt nog steeds niet"-problemen.
Beveiligingsoverwegingen en mitigaties
Gebruikers toevoegen aan de docker-groep kan beveiligingsrisico's creëren waar je je bewust van moet zijn. Laten we deze risico's bekijken en wat je kunt doen om je systemen te beschermen.
Risico's van docker-groeplidmaatschap
Lidmaatschap van de docker-groep is praktisch hetzelfde als root-toegang tot je systeem. Dat is geen overdrijving – het is hoe Docker werkt.
Als je in de docker-groep zit, kun je containers draaien die gevoelige delen van je host-bestandssysteem mounten. Deze eenvoudige opdracht geeft je bijvoorbeeld volledige toegang om elk bestand op je host te wijzigen:
Je kunt ook instellingen van de Docker-daemon wijzigen, privileged containers maken of hostnetwerkmodus gebruiken om netwerkisolatie te omzeilen. Deze mogelijkheden stellen kwaadwillende gebruikers (of gecompromitteerde applicaties met Docker-toegang) in staat je hostsysteem volledig over te nemen.
Er zijn nog een paar andere potentiële risico's die je moet kennen:
Containers uitvoeren die direct toegang hebben tot hardwareapparaten.
Binden aan netwerkpoorten met lage nummers.
Containers starten met aangepaste seccomp-profielen die beveiligingscontroles uitschakelen.
Containers maken die de procesnamespace van de host gebruiken.
Elk hiervan kan worden misbruikt om verhoogde privileges te krijgen of systeemoperaties te verstoren.
Best practices om risico's te beperken
Volg om deze risico's te verkleinen het principe van minimale privileges—geef alleen docker-groeplidmaatschap aan gebruikers die het absoluut nodig hebben. Als meerdere mensen een gedeeld systeem moeten gebruiken, overweeg dan een apart gebruikersaccount uitsluitend voor Docker-activiteiten.
Docker's rootless-modus biedt een veiliger alternatief voor de docker-groepbenadering. Met rootless-modus kun je de Docker-daemon en containers uitvoeren als niet-rootgebruiker, zonder lidmaatschap van een speciale groep:
# Install Docker in rootless mode
dockerd-rootless-setuptool.sh install# Start the rootless Docker daemon
systemctl --user start dockerMogelijk gemaakt door
Gebruikersnamespaces bieden een extra beveiligingslaag door container-UID's te mappen naar een ander bereik op de host. Dit betekent dat zelfs als een container als root draait (UID 0), dat proces wordt gemapt naar een ongeprivilegieerde gebruiker op de host:
Overweeg statische UID/GID-toewijzing voor containergebruikers om consistente identiteitsmapping te behouden. Maak in je Dockerfiles specifieke gebruikers met vooraf bepaalde ID's:
# Create a user with a static UID/GID
RUN groupadd-g10001 appgroup &&\useradd-u10000-g appgroup -s /bin/bash appuser
# Switch to that userUSER appuserMogelijk gemaakt door
Controleer regelmatig wie lid is van de docker-groep met commando's zoals:
In combinatie geven deze aanpakken jou en je team het gemak van docker-groeplidmaatschap, terwijl je de beveiligingsrisico's die het met zich meebrengt minimaliseert.
Geavanceerde configuratie en alternatieven
Zoek je andere manieren om Docker-toegang te beheren dan het standaard groeplidmaatschap? Er zijn opties. Laten we enkele geavanceerde configuraties en alternatieven verkennen die beter kunnen passen bij jouw beveiligingseisen.
Dockerfile hardenen voor beveiliging
Je kunt beveiliging direct in je Dockerfiles inbouwen om risico's te verkleinen, zelfs wanneer gebruikers toegang hebben via de docker-groep.
In het onderstaande voorbeeld gebruik ik multi-stage builds om je Python-images klein te houden en het aanvalsoppervlak te verkleinen.
Maak deze bestanden om mee te doen:
app.py:
from flask import Flask, jsonify
app = Flask(__name__)@app.route("/api/health")defhealth():return jsonify({"status":"healthy"})if __name__ =="__main__":
app.run(host="0.0.0.0", port=8000, debug=True)Mogelijk gemaakt door
FROM python:3.13-slim AS builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
FROM python:3.13-slim
WORKDIR /app
COPY --from=builder /usr/local/lib/python3.13/site-packages /usr/local/lib/python3.13/site-packages
COPY ..
RUN useradd-r-u1000-gusers appuser
USER appuser
CMD ["python", "app.py"]Mogelijk gemaakt door
Kort gezegd bevat dit Dockerfile een USER-instructie met een niet-rootgebruiker en kopieert het relevante inhoud (Python-pakketten) uit een eerdere buildstap.
Je kunt zo'n container bouwen en draaien met de volgende commando's:
# Build the imagedocker build -t my-python-app .# Run the containerdocker run --cap-drop=ALL --cap-add=NET_BIND_SERVICE my-python-appMogelijk gemaakt door
Afbeelding 5 - Een container draaien met minimale privileges
De nieuw toegevoegde optie – --cap-drop=ALL – verwijdert alle Linux-capabilities uit de container (beperkt privileges), terwijl de optie --cap-add=NET_BIND_SERVICE de capability NET_BIND_SERVICE terug toevoegt, die de container toestaat om te binden aan poorten met lage nummers.
Deze technieken beperken wat een container kan doen, zelfs als iemand met docker-groepstoegang probeert deze te misbruiken.
sudo als alternatief
Als je geen gebruikers wilt toevoegen aan de docker-groep, is sudo gebruiken een goed alternatief. Deze aanpak geeft je meer controle en een audittrail van Docker-opdrachten.
Je kunt een aangepaste sudoers-regel maken die specifieke gebruikers toestaat alleen Docker-opdrachten zonder wachtwoord uit te voeren:
# Add to /etc/sudoers.d/docker
username ALL=(root) NOPASSWD: /usr/bin/dockerMogelijk gemaakt door
Voor beter gebruiksgemak kun je aliassen maken in je .bashrc of .zshrc-bestand:
aliasdocker='sudo docker'alias docker-compose='sudo docker-compose'Mogelijk gemaakt door
Deze sudo-aanpak biedt betere beveiliging omdat:
Alle Docker-opdrachten worden gelogd in de systeemlogs.
Je kunt beperken welke Docker-subopdrachten zijn toegestaan.
Gebruikers kunnen de configuratie van de Docker-daemon niet wijzigen.
Het nadeel is iets meer typewerk en mogelijke problemen met tools die directe Docker-toegang verwachten.
Overwegingen voor Windows
Windows behandelt Docker-rechten anders dan Linux. In plaats van de docker-groep gebruikt Windows de docker-users-groep.
Om een gebruiker toe te voegen aan de docker-users-groep op Windows, doe je dit:
Open Computerbeheer (klik met rechts op Start en kies "Computerbeheer").
Navigeer naar Systeemwerkset > Lokale gebruikers en groepen > Groepen.
Dubbelklik op "docker-users".
Klik op "Toevoegen" en voer de gebruikersnaam in.
Klik op "OK" en sluit Computerbeheer.
Afbeelding 6 - Gebruikersgroepen op Windows
Als alternatief kun je PowerShell gebruiken met administratorrechten:
Na het toevoegen van een gebruiker moet die uit- en weer inloggen om de wijzigingen te laten gelden, net als op Linux.
Het is ook goed om te weten dat Windows aanvullende beveiligingsfuncties biedt via Windows Defender Application Control en Hyper-V-isolatiemodi die niet beschikbaar zijn op Linux. Voor hoogbeveiligde omgevingen op Windows kun je deze functies gebruiken om sterkere grenzen te creëren tussen containers en de host.
Je hebt nu het volledige beeld van hoe je gebruikers toevoegt aan de docker-groep en waarom dat belangrijk is. Laten we samenvatten wat we hebben behandeld.
Gebruikers toevoegen aan de docker-groep maakt werken met containers veel eenvoudiger doordat sudo-opdrachten niet meer nodig zijn. Het is een eenvoudig proces: controleer of de groep bestaat, voeg je gebruiker toe met usermod -aG docker $USER en log daarna uit en weer in. Als je problemen tegenkomt, controleer dan je socketrechten en herstart Docker.
Maar vergeet niet dat iemand toegang geven tot de docker-groep bijna hetzelfde is als het geven van het root-wachtwoord. Iedereen in deze groep kan je volledige bestandssysteem mounten, software installeren of zelfs systeembestanden wijzigen via containers. Daarom is het cruciaal om selectief te zijn in wie deze toegang krijgt.
Wat is dus de juiste aanpak voor jouw omgeving?
Over het algemeen is docker-groeplidmaatschap prima voor ontwikkelaars die op hun eigen machine werken. Voor gedeelde servers of productieomgevingen kun je alternatieven overwegen zoals rootless-modus, gebruikersnamespaces of sudo met beperkte opdrachten. En wat je ook doet, volg altijd beveiligingsbest practices in je Dockerfiles door niet-rootgebruikers te gebruiken en onnodige capabilities te verwijderen.
Houd in de gaten wie docker-groepstoegang heeft door regelmatig te auditen. Mensen veranderen van rol, verlaten teams of hebben simpelweg bepaalde rechten niet meer nodig. Een snelle check met getent group docker helpt je gebruikers te spotten die er niet meer tussen zouden moeten staan.
Als je meer wilt leren over Docker en containerisatie in het algemeen, zijn deze DataCamp-cursussen je beste volgende stap:
Wat is de Docker-groep en waarom is die belangrijk?⌄
De Docker-groep is een systeemgebruikersgroep die leden toestemming geeft om de Docker-daemon te gebruiken zonder sudo-rechten. Ze bestaat om Docker-opdrachten makkelijker te maken door wachtwoordprompts en permissiefouten te elimineren. Wanneer je Docker installeert op Linux-systemen, wordt deze groep automatisch aangemaakt en beheert ze de toegang tot het Docker-socketbestand. Door gebruikers aan deze groep toe te voegen, kunnen ze alle Docker-opdrachten direct uitvoeren, wat de workflow-efficiëntie aanzienlijk verbetert.
Welke beveiligingsrisico's horen bij lidmaatschap van de Docker-groep?⌄
Lidmaatschap van de Docker-groep verleent in de praktijk toegang die gelijkstaat aan root op je systeem. Leden kunnen het host-bestandssysteem in containers mounten, systeembestanden wijzigen en mogelijk volledige beheertoegang verkrijgen. Ze kunnen ook configuraties van de Docker-daemon aanpassen en privileged containers draaien met directe hardwaretoegang. Dit niveau van toegang maakt het cruciaal om alleen vertrouwde gebruikers toe te voegen aan de Docker-groep en aanvullende hardeningsmaatregelen te volgen.
Kan ik Docker gebruiken zonder gebruikers toe te voegen aan de Docker-groep?⌄
Ja, je kunt Docker gebruiken zonder gebruikers toe te voegen aan de Docker-groep. Het meest voorkomende alternatief is sudo gebruiken voor elke Docker-opdracht, wat betere beveiliging en auditing biedt. Een andere optie is Docker's rootless-modus instellen, waarmee je de daemon en containers als niet-rootgebruiker kunt draaien. Je kunt ook aangepaste sudoers-regels maken die specifieke gebruikers toestaan alleen Docker-opdrachten zonder wachtwoord uit te voeren.
Hoe controleer ik of een gebruiker succesvol is toegevoegd aan de Docker-groep?⌄
Je kunt verifiëren of het toevoegen aan de Docker-groep is gelukt door het commando groups $USERNAME uit te voeren om alle groepen van de gebruiker te tonen. Als "docker" in de lijst staat, is de gebruiker lid. Je kunt ook controleren met getent group docker om alle leden van de Docker-groep te zien. Onthoud dat gebruikers moeten uit- en weer inloggen voordat nieuwe groepslidmaatschappen effect hebben; dat is een veelvoorkomend punt bij troubleshooting.
Hoe verschilt het beheren van de Docker-groep op Windows vergeleken met Linux?⌄
Windows gebruikt een "docker-users"-groep in plaats van de "docker"-groep die je op Linux vindt. Op Windows voeg je gebruikers toe via Computerbeheer of PowerShell met administratorrechten met het commando Add-LocalGroupMember. In tegenstelling tot Linux biedt Windows aanvullende beveiliging via Windows Defender Application Control en Hyper-V-isolatiemodi. Maar net als op Linux moeten gebruikers uit- en weer inloggen nadat ze aan de groep zijn toegevoegd om de wijzigingen te laten gelden.
Senior Data Scientist, gevestigd in Kroatië. Top Tech-schrijver met meer dan 700 gepubliceerde artikelen en meer dan 10 miljoen weergaven. Auteur van het boek Machine Learning Automation with TPOT.
Moet je telkens weer sudo typen voor elke Docker-opdracht? Dan is dit artikel voor jou.
Standaard beperkt Docker de toegang tot de daemon: alleen root en leden van de docker-groep mogen opdrachten uitvoeren. Dat is veiliger voor je systeem, maar irritant als je de hele dag met containers werkt. De docker-groep bestaat precies om deze reden – om Docker te gebruiken zonder dat sudo-wachtwoorden je vertragen.
Zodra je jezelf toevoegt aan de docker-groep merk je meteen verschil. Je kunt
docker build,docker runen andere opdrachten uitvoeren zonder permissiefouten of wachtwoordprompts.In dit artikel leer je precies hoe je gebruikers toevoegt aan de docker-groep op verschillende systemen, welke beveiligingsrisico's je in de gaten moet houden en hoe je je systeem beschermt terwijl je Docker makkelijker maakt in gebruik.
> LLM's krijgen alle aandacht in 2025. Volg deze stapsgewijze gids voor het deployen van LLM-applicaties met Docker.
De Docker-groep begrijpen
Wanneer je begint te werken met Docker, loop je al snel tegen permissieproblemen aan als je het niet goed hebt ingesteld.
Laten we uitpluizen wat de docker-groep precies is en waarom deze belangrijk is voor je workflow.
Definitie en functionaliteit
De docker-groep is een systeemgebruikersgroep die leden toestemming geeft om de Docker-daemon te gebruiken zonder sudo-rechten.
Wanneer je Docker installeert op Linux-systemen, wordt deze groep meestal automatisch aangemaakt. Het socketbestand van Docker (
/var/run/docker.sock) is eigendom van root maar heeft groepsrechten toegewezen aan de docker-groep, en zo werkt deze toegangscontrole.Gebruikers in deze groep kunnen images bouwen, containers draaien, netwerken beheren en andere Docker-activiteiten uitvoeren zonder sudo voor de opdrachten te zetten. Dat betekent minder typen en geen wachtwoordprompts tijdens het werken met containers. Als je Docker-opdrachten probeert uit te voeren zonder in deze groep te zitten, krijg je "permission denied"-fouten, wat uiteindelijk je voortgang vertraagt.
Beveiligingsimplicaties van lidmaatschap
Gebruikers toevoegen aan de docker-groep brengt echte beveiligingsrisico's met zich mee die je niet moet negeren.
Leden van de docker-groep kunnen root-rechten verkrijgen op het hostsysteem. Dat kan omdat Docker toestaat om hostmappen in containers te mounten, inclusief gevoelige systeemmappen. Iemand met Docker-toegang kan een container maken die het volledige root-bestandssysteem mount en elk bestand op de host aanpassen.
Container breakout-kwetsbaarheden vormen een ander risico, omdat ze aanvallers mogelijk uit de containerisolatie laten ontsnappen.
Voeg alleen vertrouwde gebruikers toe aan de docker-groep, en beschouw het zelfs dan als gelijkwaardig aan het geven van root-toegang. Veel securityprofessionals raden aan het lidmaatschap van de docker-groep te beperken tot alleen diegenen die het echt nodig hebben voor hun dagelijkse werk.
Stapsgewijze implementatie
Nu je begrijpt wat de docker-groep is en wat de implicaties zijn, is het tijd voor de daadwerkelijke setup.
De docker-groep aanmaken
In de meeste gevallen hoef je de docker-groep niet handmatig aan te maken, omdat deze automatisch wordt aangemaakt tijdens de installatie van Docker. Je kunt controleren of de groep bestaat met:
Afbeelding 1 - Controleren of de docker-groep bestaat
Als de groep om wat voor reden dan ook niet bestaat (zoals bij mij), kun je deze aanmaken met dit commando (alleen voor Linux):
Dit commando maakt de docker-groep op je systeem aan, maar is beperkt tot Linux-besturingssystemen.
Voor macOS kun je de officiële instructies van Apple volgen, omdat de groep via de GUI wordt aangemaakt. Het proces is vergelijkbaar voor Windows-besturingssystemen.
Na het volgen van de stappen zou je moeten zien dat je groep is aangemaakt:
Afbeelding 2 - Controleren of de docker-groep bestaat (2)
Gebruikers aan de groep toevoegen
Om je huidige gebruiker toe te voegen aan de docker-groep, voer je dit commando uit op Linux-besturingssystemen:
De vlag
-abetekent "append" en-Gspecificeert de groep waar je de gebruiker aan wilt toevoegen. De variabele$USERgebruikt automatisch je huidige gebruikersnaam.Voor macOS en Windows kun je gebruikers toevoegen via Systeeminstellingen of het Configuratiescherm – zet gewoon een schakelaar om om alle gewenste gebruikers toe te voegen:
Afbeelding 3 - Gebruikers toevoegen aan de groep
Nadat je jezelf aan de groep hebt toegevoegd, moet je uit- en weer inloggen om de wijzigingen door te voeren. Je huidige sessie herkent het nieuwe groepslidmaatschap pas als je volledig uitlogt. Op sommige systemen moet je mogelijk opnieuw opstarten:
Om te verifiëren dat je gebruiker nu deel uitmaakt van de docker-groep, voer je uit:
Je zou "docker" tussen je groepslidmaatschappen moeten zien staan:
Afbeelding 4 - Gebruikersgroepen bekijken
Veelvoorkomende problemen oplossen
Als je nog steeds "permission denied"-fouten krijgt nadat je jezelf aan de groep hebt toegevoegd, moet je mogelijk de Docker-socketrechten corrigeren:
Een ander veelvoorkomend probleem treedt op wanneer de Docker-service opnieuw start, wat de socketrechten kan resetten. Als Docker is gestart nadat je groepswijzigingen hebt doorgevoerd, probeer dan de Docker-service te herstarten:
Controleer bij aanhoudende permissieproblemen of je Docker-serviceconfiguratie correct is. Op sommige systemen kan Docker zijn geconfigureerd om een andere groepsnaam of socketlocatie te gebruiken. Je kunt het configuratiebestand van de Docker-daemon controleren op
/etc/docker/daemon.jsonof servicebestanden in/lib/systemd/system/docker.service.Onthoud dat permissiewijzigingen die je doorvoert pas van toepassing zijn op je huidige sessie nadat je uit- en weer inlogt. Dit is de nummer één oorzaak van "ik heb de wijzigingen gedaan, maar het werkt nog steeds niet"-problemen.
Beveiligingsoverwegingen en mitigaties
Gebruikers toevoegen aan de docker-groep kan beveiligingsrisico's creëren waar je je bewust van moet zijn. Laten we deze risico's bekijken en wat je kunt doen om je systemen te beschermen.
Risico's van docker-groeplidmaatschap
Lidmaatschap van de docker-groep is praktisch hetzelfde als root-toegang tot je systeem. Dat is geen overdrijving – het is hoe Docker werkt.
Als je in de docker-groep zit, kun je containers draaien die gevoelige delen van je host-bestandssysteem mounten. Deze eenvoudige opdracht geeft je bijvoorbeeld volledige toegang om elk bestand op je host te wijzigen:
Je kunt ook instellingen van de Docker-daemon wijzigen, privileged containers maken of hostnetwerkmodus gebruiken om netwerkisolatie te omzeilen. Deze mogelijkheden stellen kwaadwillende gebruikers (of gecompromitteerde applicaties met Docker-toegang) in staat je hostsysteem volledig over te nemen.
Er zijn nog een paar andere potentiële risico's die je moet kennen:
Elk hiervan kan worden misbruikt om verhoogde privileges te krijgen of systeemoperaties te verstoren.
Best practices om risico's te beperken
Volg om deze risico's te verkleinen het principe van minimale privileges—geef alleen docker-groeplidmaatschap aan gebruikers die het absoluut nodig hebben. Als meerdere mensen een gedeeld systeem moeten gebruiken, overweeg dan een apart gebruikersaccount uitsluitend voor Docker-activiteiten.
Docker's rootless-modus biedt een veiliger alternatief voor de docker-groepbenadering. Met rootless-modus kun je de Docker-daemon en containers uitvoeren als niet-rootgebruiker, zonder lidmaatschap van een speciale groep:
Gebruikersnamespaces bieden een extra beveiligingslaag door container-UID's te mappen naar een ander bereik op de host. Dit betekent dat zelfs als een container als root draait (UID 0), dat proces wordt gemapt naar een ongeprivilegieerde gebruiker op de host:
Overweeg statische UID/GID-toewijzing voor containergebruikers om consistente identiteitsmapping te behouden. Maak in je Dockerfiles specifieke gebruikers met vooraf bepaalde ID's:
Controleer regelmatig wie lid is van de docker-groep met commando's zoals:
En verwijder gebruikers die geen toegang meer nodig hebben:
In combinatie geven deze aanpakken jou en je team het gemak van docker-groeplidmaatschap, terwijl je de beveiligingsrisico's die het met zich meebrengt minimaliseert.
Geavanceerde configuratie en alternatieven
Zoek je andere manieren om Docker-toegang te beheren dan het standaard groeplidmaatschap? Er zijn opties. Laten we enkele geavanceerde configuraties en alternatieven verkennen die beter kunnen passen bij jouw beveiligingseisen.
Dockerfile hardenen voor beveiliging
Je kunt beveiliging direct in je Dockerfiles inbouwen om risico's te verkleinen, zelfs wanneer gebruikers toegang hebben via de docker-groep.
In het onderstaande voorbeeld gebruik ik multi-stage builds om je Python-images klein te houden en het aanvalsoppervlak te verkleinen.
Maak deze bestanden om mee te doen:
app.py:
requirements.txt:
Dockerfile:
Kort gezegd bevat dit
DockerfileeenUSER-instructie met een niet-rootgebruiker en kopieert het relevante inhoud (Python-pakketten) uit een eerdere buildstap.> Als je nieuw bent met het containerizen van applicaties, geen zorgen – onze complete gids helpt je op weg.
Je kunt zo'n container bouwen en draaien met de volgende commando's:
Afbeelding 5 - Een container draaien met minimale privileges
De nieuw toegevoegde optie –
--cap-drop=ALL– verwijdert alle Linux-capabilities uit de container (beperkt privileges), terwijl de optie--cap-add=NET_BIND_SERVICEde capabilityNET_BIND_SERVICEterug toevoegt, die de container toestaat om te binden aan poorten met lage nummers.Deze technieken beperken wat een container kan doen, zelfs als iemand met docker-groepstoegang probeert deze te misbruiken.
sudo als alternatief
Als je geen gebruikers wilt toevoegen aan de docker-groep, is sudo gebruiken een goed alternatief. Deze aanpak geeft je meer controle en een audittrail van Docker-opdrachten.
Je kunt een aangepaste sudoers-regel maken die specifieke gebruikers toestaat alleen Docker-opdrachten zonder wachtwoord uit te voeren:
Voor beter gebruiksgemak kun je aliassen maken in je
.bashrcof.zshrc-bestand:Deze sudo-aanpak biedt betere beveiliging omdat:
Het nadeel is iets meer typewerk en mogelijke problemen met tools die directe Docker-toegang verwachten.
Overwegingen voor Windows
Windows behandelt Docker-rechten anders dan Linux. In plaats van de docker-groep gebruikt Windows de docker-users-groep.
Om een gebruiker toe te voegen aan de docker-users-groep op Windows, doe je dit:
Afbeelding 6 - Gebruikersgroepen op Windows
Als alternatief kun je PowerShell gebruiken met administratorrechten:
Na het toevoegen van een gebruiker moet die uit- en weer inloggen om de wijzigingen te laten gelden, net als op Linux.
Het is ook goed om te weten dat Windows aanvullende beveiligingsfuncties biedt via Windows Defender Application Control en Hyper-V-isolatiemodi die niet beschikbaar zijn op Linux. Voor hoogbeveiligde omgevingen op Windows kun je deze functies gebruiken om sterkere grenzen te creëren tussen containers en de host.
> Dataprofessionals hebben Docker nodig in 2025, en deze gids laat je zien hoe je het leert.
Samenvatting van Docker-gebruikersgroepen
Je hebt nu het volledige beeld van hoe je gebruikers toevoegt aan de docker-groep en waarom dat belangrijk is. Laten we samenvatten wat we hebben behandeld.
Gebruikers toevoegen aan de docker-groep maakt werken met containers veel eenvoudiger doordat sudo-opdrachten niet meer nodig zijn. Het is een eenvoudig proces: controleer of de groep bestaat, voeg je gebruiker toe met
usermod -aG docker $USERen log daarna uit en weer in. Als je problemen tegenkomt, controleer dan je socketrechten en herstart Docker.Maar vergeet niet dat iemand toegang geven tot de docker-groep bijna hetzelfde is als het geven van het root-wachtwoord. Iedereen in deze groep kan je volledige bestandssysteem mounten, software installeren of zelfs systeembestanden wijzigen via containers. Daarom is het cruciaal om selectief te zijn in wie deze toegang krijgt.
Wat is dus de juiste aanpak voor jouw omgeving?
Over het algemeen is docker-groeplidmaatschap prima voor ontwikkelaars die op hun eigen machine werken. Voor gedeelde servers of productieomgevingen kun je alternatieven overwegen zoals rootless-modus, gebruikersnamespaces of sudo met beperkte opdrachten. En wat je ook doet, volg altijd beveiligingsbest practices in je Dockerfiles door niet-rootgebruikers te gebruiken en onnodige capabilities te verwijderen.
Houd in de gaten wie docker-groepstoegang heeft door regelmatig te auditen. Mensen veranderen van rol, verlaten teams of hebben simpelweg bepaalde rechten niet meer nodig. Een snelle check met
getent group dockerhelpt je gebruikers te spotten die er niet meer tussen zouden moeten staan.Als je meer wilt leren over Docker en containerisatie in het algemeen, zijn deze DataCamp-cursussen je beste volgende stap: