{"id":5747,"date":"2026-02-06T13:02:40","date_gmt":"2026-02-06T13:02:40","guid":{"rendered":"\/nl\/tutorials\/?p=5747"},"modified":"2026-02-16T04:02:53","modified_gmt":"2026-02-16T04:02:53","slug":"docker-permission-denied-oplossen","status":"publish","type":"post","link":"\/nl\/tutorials\/docker-permission-denied-oplossen","title":{"rendered":"Hoe los je de foutmelding \u2018Docker permission denied\u2019 op in Ubuntu"},"content":{"rendered":"<p>De foutmelding Docker permission denied verschijnt meestal <strong>wanneer je gebruikersaccount geen rechten heeft voor toegang tot de Docker-daemon, de bijbehorende socket of vereiste bestanden en mappen<\/strong>.<\/p><p>Docker beperkt standaard de toegang om ongeautoriseerd gebruik te voorkomen. Dat kan je workflow verstoren wanneer je ontwikkelomgevingen op Ubuntu instelt.<\/p><p>Je lost de Docker permission denied fout op met de volgende zes bewezen oplossingen:<\/p><ol class=\"wp-block-list\">\n<li><strong>Gebruikersgroep aanpassen.<\/strong> Voeg je gebruikersaccount toe aan de docker-groep, zodat je Docker-commando&rsquo;s zonder sudo uitvoert.<\/li>\n\n\n\n<li><strong>Eigendom van bestanden en mappen corrigeren.<\/strong> Pas het eigendom van configuratiebestanden en gemounte volumes aan, zodat de Docker-engine gegevens kan lezen en schrijven.<\/li>\n\n\n\n<li><strong>Socketrechten controleren<\/strong>. Controleer de permissies van de Docker Unix-socket om na te gaan of het communicatiekanaal niet wordt beperkt.<\/li>\n\n\n\n<li><strong>Uitvoeringsrechten van scripts instellen.<\/strong> Zorg dat Dockerfile-commando&rsquo;s en ENTRYPOINT-scripts uitvoerrechten hebben om opstartfouten van containers te voorkomen.<\/li>\n\n\n\n<li><strong>Hardwaretoegang instellen.<\/strong> Geef containers expliciet toegang tot specifieke apparaten, zoals USB-apparaten of GPU&rsquo;s, om hardwaregerelateerde permissieproblemen op te lossen.<\/li>\n\n\n\n<li><strong>Docker-daemon herstarten.<\/strong> Herstart de Docker-service en je gebruikerssessie om alle wijzigingen in rechten en groepslidmaatschappen toe te passen.<\/li>\n<\/ol><h2 class=\"wp-block-heading\" id=\"h-vereisten\">Vereisten<\/h2><p>Controleer v&oacute;&oacute;r je de fout Docker permission denied oplost of je Linux-systeem voldoet aan de vereisten om administratieve instellingen te wijzigen.<\/p><ul class=\"wp-block-list\">\n<li><strong>Administratieve toegang<\/strong>. Je hebt sudo- of rootrechten nodig om gebruikersgroepen en bestandsrechten aan te passen.<\/li>\n\n\n\n<li><strong>Gebruikersgroep controleren<\/strong>. Controleer je huidige groepslidmaatschappen met het commando <strong>groups $USER<\/strong>.<\/li>\n<\/ul><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a290e4a5da06\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a290e4a5da06\" class=\"aligncenter size-large is-resized wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"258\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-groepen-gebruiker.png\/public\" alt=\"Terminaluitvoer met de huidige lidmaatschappen van Linux-gebruikersgroepen\" class=\"wp-image-5631\" style=\"width:450px;height:auto\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-groepen-gebruiker.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-groepen-gebruiker.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-groepen-gebruiker.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><ul class=\"wp-block-list\">\n<li><strong>Docker-installatie<\/strong>. Controleer of Docker is ge&iuml;nstalleerd en actief is door docker <strong>&ndash;version<\/strong> uit te voeren.<\/li>\n<\/ul><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a290e4a60ae6\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a290e4a60ae6\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"117\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-docker-versie-1.png\/public\" alt=\"Terminaluitvoer die de ge&iuml;nstalleerde Docker-versie bevestigt\" class=\"wp-image-5633\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-docker-versie-1.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-docker-versie-1.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-docker-versie-1.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Hoewel deze instructies gericht zijn op Ubuntu, gelden ze ook voor de meeste Debian-gebaseerde distributies.<\/p><h2 class=\"wp-block-heading\" id=\"h-1-voeg-je-gebruiker-toe-aan-de-docker-groep\">1. Voeg je gebruiker toe aan de docker-groep<\/h2><p>De meest voorkomende oorzaak van de fout permission denied is dat je gebruikersaccount geen deel uitmaakt van de <strong>docker<\/strong>-groep.<\/p><p>Standaard draait de Docker-daemon als een service onder root. Alleen gebruikers in de <strong>docker<\/strong>-groep kunnen zonder <strong>sudo<\/strong> met de daemon communiceren.<\/p><p>Voeg je huidige gebruiker toe aan de <strong>docker<\/strong>-groep om dit op te lossen:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo usermod -aG docker $USER<\/pre><p>Dit commando voegt je gebruiker toe (<strong>-a<\/strong>) aan de opgegeven groep (<strong>-G<\/strong>). Je krijgt daarmee toegang tot de Docker-daemon socket en kunt Docker-commando&rsquo;s direct uitvoeren.<\/p><p>Log uit en weer in om het nieuwe groepslidmaatschap toe te passen.<\/p><p>Controleer daarna of de wijziging is doorgevoerd:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">id -nG<\/pre><p>De uitvoer moet <strong>docker<\/strong> bevatten in de lijst met groepen.<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a290e4a64256\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a290e4a64256\" class=\"aligncenter size-large is-resized wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"263\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-id-ng-docker-uitgelicht.png\/public\" alt=\"Terminaluitvoer met docker groepslidmaatschap gemarkeerd\" class=\"wp-image-5635\" style=\"width:558px;height:auto\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-id-ng-docker-uitgelicht.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-id-ng-docker-uitgelicht.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-id-ng-docker-uitgelicht.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Wil je direct testen zonder uit te loggen, voer dan uit:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">newgrp docker<\/pre><p>Dit commando past de groepswijziging alleen toe op je huidige terminalsessie.<\/p><h2 class=\"wp-block-heading\" id=\"h-2-problemen-met-bestands-en-maprechten-oplossen\">2. Problemen met bestands- en maprechten oplossen<\/h2><p>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.<\/p><p>Docker heeft lees- en schrijftoegang nodig tot zijn configuratiebestanden, met name <strong>config.json<\/strong>.<\/p><p>Controleer eerst de permissies van je lokale Docker-configuratiemap:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ls -l ~\/.docker\/<\/pre><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a290e4a680f2\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a290e4a680f2\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"127\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-ls-l-docker-root-root-verlicht.png\/public\" alt=\"Terminaluitvoer die root-eigendom van Docker-configuratiebestanden toont\" class=\"wp-image-5637\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-ls-l-docker-root-root-verlicht.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-ls-l-docker-root-root-verlicht.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-ls-l-docker-root-root-verlicht.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Laat de uitvoer zien dat de bestanden eigendom zijn van root in plaats van je gebruiker, wijzig dan het eigendom met het commando <a href=\"\/nl\/tutorials\/chown-command\">chown<\/a>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo chown -R \"$USER\":\"$USER\" \"$HOME\/.docker\"<\/pre><p>Dit commando wijzigt recursief het eigendom van de map <strong>.docker<\/strong> naar je huidige gebruiker.<\/p><p>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.<\/p><p>Start je bijvoorbeeld een container met een volume mount:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker run -v ~\/data:\/app\/data ubuntu<\/pre><p>Controleer dan of de hostmap <strong>~\/data<\/strong> de juiste rechten heeft. Geef de gebruiker (u) lees- en schrijftoegang met het volgende chmod-commando:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">chmod u+rw ~\/data<\/pre><p>Zo zorg je dat de eigenaar van de map voldoende rechten heeft om gegevens in het gemounte volume te beheren.<\/p><h2 class=\"wp-block-heading\" id=\"h-3-docker-socket-permissies-controleren\">3. Docker socket-permissies controleren<\/h2><p>De Docker-daemon communiceert via een Unix-socket op <strong>\/var\/run\/docker.sock<\/strong>. Heeft deze socket onjuiste rechten, dan kan de Docker-client geen commando&rsquo;s naar de daemon sturen.<\/p><p>Controleer de huidige socketpermissies:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">ls -l \/var\/run\/docker.sock<\/pre><p>Je zou uitvoer moeten zien zoals hieronder:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">srw-rw---- 1 root docker 0 Dec 18 10:00 \/var\/run\/docker.sock<\/pre><p>Deze uitvoer laat zien dat <strong>root<\/strong> eigenaar is van de socket en dat de <strong>docker<\/strong>-groep lees- en schrijftoegang heeft. Zie je dit en behoort je gebruiker tot de <strong>docker<\/strong>-groep, dan is de socketconfiguratie correct.<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a290e4a6b350\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a290e4a6b350\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"71\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-ls-l-var-run-docker-sock-root-docker-highlighted.png\/public\" alt=\"Terminal uitvoer toont docker.sock eigendom van root en docker groep\" class=\"wp-image-5638\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-ls-l-var-run-docker-sock-root-docker-highlighted.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-ls-l-var-run-docker-sock-root-docker-highlighted.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-ls-l-var-run-docker-sock-root-docker-highlighted.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Is de groep geen <strong>docker<\/strong> of wijken de permissies af, wijzig ze dan niet handmatig door <strong>chmod 666<\/strong> <strong>\/var\/run\/docker.sock<\/strong> uit te voeren, zeker niet in productieomgevingen.<\/p><p>Dit commando vormt een ernstig beveiligingsrisico: alle systeemgebruikers krijgen toegang tot de Docker-daemon en daarmee in feite root-toegang tot de host.<\/p><p>Vertrouw in plaats daarvan op groepslidmaatschap door je gebruiker toe te voegen aan de <strong>docker<\/strong>-groep. De Docker-daemon stelt bij het opstarten automatisch de juiste socketrechten in.<\/p><h2 class=\"wp-block-heading\" id=\"h-4-dockerfile-of-entrypoint-scriptrechten-herstellen\">4. Dockerfile- of ENTRYPOINT-scriptrechten herstellen<\/h2><p>De fout Docker permission denied kan ook binnen een container optreden wanneer het entrypoint-script geen uitvoerrechten heeft.<\/p><p>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.<\/p><p>Gebeurt dit, dan start de container niet omdat het script in de <strong>ENTRYPOINT<\/strong>&ndash; of <strong>CMD<\/strong>-instructie niet kan worden uitgevoerd.<\/p><p>Voeg een <strong>RUN<\/strong>-instructie toe na de <strong>COPY<\/strong>-regel in je Dockerfile om dit op te lossen. Daarmee geef je het script uitvoerrechten.<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">RUN chmod +x \/usr\/local\/bin\/entrypoint.sh<\/pre><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a290e4a6e4df\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a290e4a6e4df\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"630\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-nano-dockerfile-run-chmod-entrypoint-sh-gemarkeerd.png\/public\" alt=\"Dockerfile geopend in nano met chmod entrypoint script gemarkeerd\" class=\"wp-image-5640\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-nano-dockerfile-run-chmod-entrypoint-sh-gemarkeerd.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-nano-dockerfile-run-chmod-entrypoint-sh-gemarkeerd.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-nano-dockerfile-run-chmod-entrypoint-sh-gemarkeerd.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>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.<\/p><h2 class=\"wp-block-heading\" id=\"h-5-apparaattoegang-verlenen-aan-docker-containers\">5. Apparaattoegang verlenen aan Docker-containers<\/h2><p>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 <strong>\/dev\/ttyUSB0<\/strong>.<\/p><p>Containers draaien standaard ge&iuml;soleerd en hebben geen toegang tot hostapparaten. Geef expliciet een apparaat door bij het starten van de container met de <strong>&ndash;device<\/strong>-vlag:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker run --device=\/dev\/ttyUSB0 my-image<\/pre><p>Heeft de container ruimere rechten nodig, maar geen volledige apparaattoegang, voeg dan specifieke Linux-capabilities toe met de <strong>&ndash;cap-add<\/strong>-vlag:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker run --cap-add=SYS_ADMIN my-image<\/pre><p>Deze aanpak volgt het principe van minimale rechten: ken alleen de capabilities toe die de container nodig heeft. Veelgebruikte capabilities zijn <strong>NET_ADMIN<\/strong> voor netwerkconfiguratie en <strong>SYS_PTRACE<\/strong> voor debugging.<\/p><p>Zijn specifieke apparaten of capabilities niet voldoende, dan kun je de <strong>&ndash;privileged<\/strong>-vlag gebruiken:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker run --privileged my-image<\/pre><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a290e4a71892\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a290e4a71892\" class=\"aligncenter size-large is-resized wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"184\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-docker-run-privileged-my-image.png\/public\" alt=\"Terminalopdracht die een container uitvoert met de privileged flag\" class=\"wp-image-5642\" style=\"width:718px;height:auto\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-docker-run-privileged-my-image.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-docker-run-privileged-my-image.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-docker-run-privileged-my-image.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Deze optie geeft de container volledige toegang tot alle hostapparaten en schakelt de meeste beveiligingsisolatie uit.<\/p><p>Containers die in deze modus starten, kunnen rootniveau-toegang tot het hostsysteem krijgen. Gebruik <strong>&ndash;privileged<\/strong> alleen in vertrouwde lokale ontwikkelomgevingen of wanneer er geen veiliger alternatief is.<\/p><p>Geef voor productieworkloads altijd de voorkeur aan <strong>&ndash;device<\/strong> voor specifieke hardware of <strong>&ndash;cap-add<\/strong> voor specifieke capabilities.<\/p><h2 class=\"wp-block-heading\" id=\"h-6-docker-herstarten-en-je-configuratie-testen\">6. Docker herstarten en je configuratie testen<\/h2><p>Herstart de Docker-service nadat je wijzigingen in gebruikersgroepen of rechten hebt toegepast, zodat de daemon de bijgewerkte configuratie herkent.<\/p><p>Herstart Docker met <strong>systemctl<\/strong>:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo systemctl restart docker<\/pre><p>Controleer daarna of de fout is opgelost door de standaard <strong>hello-world<\/strong>-container zonder sudo te starten:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">docker run hello-world<\/pre><p>Wordt de image gedownload en uitgevoerd en zie je een welkomstbericht, dan is het permissieprobleem opgelost.<\/p><div class=\"wp-block-image\">\n<figure data-wp-context='{\"imageId\":\"6a290e4a747a6\"}' data-wp-interactive=\"core\/image\" data-wp-key=\"6a290e4a747a6\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"505\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on--click=\"actions.showLightbox\" data-wp-on--load=\"callbacks.setButtonStyles\" data-wp-on-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-run-hello-world-download-compleet-hello-van-docker-gemarkeerd.png\/public\" alt=\"Docker hello-world containeruitvoer bevestigt succesvolle installatie\" class=\"wp-image-5645\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-run-hello-world-download-compleet-hello-van-docker-gemarkeerd.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-run-hello-world-download-compleet-hello-van-docker-gemarkeerd.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/28\/2026\/01\/terminal-run-hello-world-download-compleet-hello-van-docker-gemarkeerd.png\/w=768,fit=scale-down 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure>\n<\/div><p>Blijft de fout optreden, herstart dan het volledige systeem zodat alle groepslidmaatschappen en sessiewijzigingen worden toegepast:<\/p><pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">sudo reboot<\/pre><h2 class=\"wp-block-heading\" id=\"h-wat-moet-je-nu-leren-in-docker\">Wat moet je nu leren in Docker?<\/h2><p>Nu je Docker-installatie zonder permissiefouten werkt, kun je veilig en met vertrouwen met containers werken.<\/p><p>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.<\/p><p>Wil je verder verdiepen in de kernconcepten van Docker, lees dan onze volledige <a href=\"\/nl\/tutorials\/docker-tutorial\">Docker-tutorial<\/a>. Daarin komen imagebeheer, containerlevenscycli, Docker Compose, datapersistentie en containernetwerken aan bod.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>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 [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/nl\/tutorials\/docker-permission-denied-oplossen\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":190,"featured_media":5746,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"Docker permission denied fout oplossen","rank_math_description":"Leer hoe je de Docker permission denied fout oplost. Van gebruikers aan de Docker-groep toevoegen tot het herstarten van de daemon.","rank_math_focus_keyword":"docker permission denied","footnotes":""},"categories":[17],"tags":[],"class_list":["post-5747","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vps"],"hreflangs":[],"acf":[],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/nl\/tutorials\/wp-json\/wp\/v2\/posts\/5747","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/nl\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/nl\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/nl\/tutorials\/wp-json\/wp\/v2\/users\/190"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/nl\/tutorials\/wp-json\/wp\/v2\/comments?post=5747"}],"version-history":[{"count":9,"href":"https:\/\/www.hostinger.com\/nl\/tutorials\/wp-json\/wp\/v2\/posts\/5747\/revisions"}],"predecessor-version":[{"id":5788,"href":"https:\/\/www.hostinger.com\/nl\/tutorials\/wp-json\/wp\/v2\/posts\/5747\/revisions\/5788"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/nl\/tutorials\/wp-json\/wp\/v2\/media\/5746"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/nl\/tutorials\/wp-json\/wp\/v2\/media?parent=5747"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/nl\/tutorials\/wp-json\/wp\/v2\/categories?post=5747"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/nl\/tutorials\/wp-json\/wp\/v2\/tags?post=5747"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}