Feb 16, 2026
Faradilla A.
4min Lezen
De foutmelding Docker permission denied verschijnt meestal wanneer je gebruikersaccount geen rechten heeft voor toegang tot de Docker-daemon, de bijbehorende socket of vereiste bestanden en mappen.
Docker beperkt standaard de toegang om ongeautoriseerd gebruik te voorkomen. Dat kan je workflow verstoren wanneer je ontwikkelomgevingen op Ubuntu instelt.
Je lost de Docker permission denied fout op met de volgende zes bewezen oplossingen:
Controleer vóór je de fout Docker permission denied oplost of je Linux-systeem voldoet aan de vereisten om administratieve instellingen te wijzigen.


Hoewel deze instructies gericht zijn op Ubuntu, gelden ze ook voor de meeste Debian-gebaseerde distributies.
De meest voorkomende oorzaak van de fout permission denied is dat je gebruikersaccount geen deel uitmaakt van de docker-groep.
Standaard draait de Docker-daemon als een service onder root. Alleen gebruikers in de docker-groep kunnen zonder sudo met de daemon communiceren.
Voeg je huidige gebruiker toe aan de docker-groep om dit op te lossen:
sudo usermod -aG docker $USER
Dit commando voegt je gebruiker toe (-a) aan de opgegeven groep (-G). Je krijgt daarmee toegang tot de Docker-daemon socket en kunt Docker-commando’s direct uitvoeren.
Log uit en weer in om het nieuwe groepslidmaatschap toe te passen.
Controleer daarna of de wijziging is doorgevoerd:
id -nG
De uitvoer moet docker bevatten in de lijst met groepen.

Wil je direct testen zonder uit te loggen, voer dan uit:
newgrp docker
Dit commando past de groepswijziging alleen toe op je huidige terminalsessie.
Lost het toevoegen van je gebruiker aan de groep het probleem niet op, dan kunnen onjuiste rechten op configuratiebestanden of gemounte volumes de fout veroorzaken.
Docker heeft lees- en schrijftoegang nodig tot zijn configuratiebestanden, met name config.json.
Controleer eerst de permissies van je lokale Docker-configuratiemap:
ls -l ~/.docker/

Laat de uitvoer zien dat de bestanden eigendom zijn van root in plaats van je gebruiker, wijzig dan het eigendom met het commando chown:
sudo chown -R "$USER":"$USER" "$HOME/.docker"
Dit commando wijzigt recursief het eigendom van de map .docker naar je huidige gebruiker.
Controleer daarna de rechten van gemounte volumes. Wanneer je een hostmap in een container mount, heeft de containergebruiker rechten nodig om die map te lezen en te beschrijven.
Start je bijvoorbeeld een container met een volume mount:
docker run -v ~/data:/app/data ubuntu
Controleer dan of de hostmap ~/data de juiste rechten heeft. Geef de gebruiker (u) lees- en schrijftoegang met het volgende chmod-commando:
chmod u+rw ~/data
Zo zorg je dat de eigenaar van de map voldoende rechten heeft om gegevens in het gemounte volume te beheren.
De Docker-daemon communiceert via een Unix-socket op /var/run/docker.sock. Heeft deze socket onjuiste rechten, dan kan de Docker-client geen commando’s naar de daemon sturen.
Controleer de huidige socketpermissies:
ls -l /var/run/docker.sock
Je zou uitvoer moeten zien zoals hieronder:
srw-rw---- 1 root docker 0 Dec 18 10:00 /var/run/docker.sock
Deze uitvoer laat zien dat root eigenaar is van de socket en dat de docker-groep lees- en schrijftoegang heeft. Zie je dit en behoort je gebruiker tot de docker-groep, dan is de socketconfiguratie correct.

Is de groep geen docker of wijken de permissies af, wijzig ze dan niet handmatig door chmod 666 /var/run/docker.sock uit te voeren, zeker niet in productieomgevingen.
Dit commando vormt een ernstig beveiligingsrisico: alle systeemgebruikers krijgen toegang tot de Docker-daemon en daarmee in feite root-toegang tot de host.
Vertrouw in plaats daarvan op groepslidmaatschap door je gebruiker toe te voegen aan de docker-groep. De Docker-daemon stelt bij het opstarten automatisch de juiste socketrechten in.
De fout Docker permission denied kan ook binnen een container optreden wanneer het entrypoint-script geen uitvoerrechten heeft.
Dit gebeurt vaak wanneer je scripts verplaatst van een niet-Linuxbestandssysteem, zoals Windows, naar de Docker build context. Daarbij kan de uitvoerbare bit verloren gaan.
Gebeurt dit, dan start de container niet omdat het script in de ENTRYPOINT– of CMD-instructie niet kan worden uitgevoerd.
Voeg een RUN-instructie toe na de COPY-regel in je Dockerfile om dit op te lossen. Daarmee geef je het script uitvoerrechten.
RUN chmod +x /usr/local/bin/entrypoint.sh

Zo blijft het script uitvoerbaar, ongeacht de rechten op de hostmachine. Deze stap is vaak nodig wanneer je aangepaste images bouwt die afhankelijk zijn van opstartscripts.
Moet een container communiceren met hardware, zoals een USB-station, webcam of GPU, dan kun je een permission denied-fout zien voor een apparaatpad zoals /dev/ttyUSB0.
Containers draaien standaard geïsoleerd en hebben geen toegang tot hostapparaten. Geef expliciet een apparaat door bij het starten van de container met de –device-vlag:
docker run --device=/dev/ttyUSB0 my-image
Heeft de container ruimere rechten nodig, maar geen volledige apparaattoegang, voeg dan specifieke Linux-capabilities toe met de –cap-add-vlag:
docker run --cap-add=SYS_ADMIN my-image
Deze aanpak volgt het principe van minimale rechten: ken alleen de capabilities toe die de container nodig heeft. Veelgebruikte capabilities zijn NET_ADMIN voor netwerkconfiguratie en SYS_PTRACE voor debugging.
Zijn specifieke apparaten of capabilities niet voldoende, dan kun je de –privileged-vlag gebruiken:
docker run --privileged my-image

Deze optie geeft de container volledige toegang tot alle hostapparaten en schakelt de meeste beveiligingsisolatie uit.
Containers die in deze modus starten, kunnen rootniveau-toegang tot het hostsysteem krijgen. Gebruik –privileged alleen in vertrouwde lokale ontwikkelomgevingen of wanneer er geen veiliger alternatief is.
Geef voor productieworkloads altijd de voorkeur aan –device voor specifieke hardware of –cap-add voor specifieke capabilities.
Herstart de Docker-service nadat je wijzigingen in gebruikersgroepen of rechten hebt toegepast, zodat de daemon de bijgewerkte configuratie herkent.
Herstart Docker met systemctl:
sudo systemctl restart docker
Controleer daarna of de fout is opgelost door de standaard hello-world-container zonder sudo te starten:
docker run hello-world
Wordt de image gedownload en uitgevoerd en zie je een welkomstbericht, dan is het permissieprobleem opgelost.

Blijft de fout optreden, herstart dan het volledige systeem zodat alle groepslidmaatschappen en sessiewijzigingen worden toegepast:
sudo reboot
Nu je Docker-installatie zonder permissiefouten werkt, kun je veilig en met vertrouwen met containers werken.
Omgevingsproblemen oplossen is een belangrijke eerste stap in je Docker-traject. Zo richt je je op het bouwen en uitrollen van applicaties in plaats van op configuratieproblemen.
Wil je verder verdiepen in de kernconcepten van Docker, lees dan onze volledige Docker-tutorial. Daarin komen imagebeheer, containerlevenscycli, Docker Compose, datapersistentie en containernetwerken aan bod.
Alle tutorials op deze website voldoen aan de strenge edactionele standaarden en waarden van Hostinger.