{"id":126856,"date":"2025-04-09T19:12:53","date_gmt":"2025-04-09T19:12:53","guid":{"rendered":"\/tutorials\/?p=126856"},"modified":"2026-03-09T19:16:40","modified_gmt":"2026-03-09T19:16:40","slug":"how-to-fix-docker-permission-denied-error","status":"publish","type":"post","link":"\/ng\/tutorials\/how-to-fix-docker-permission-denied-error","title":{"rendered":"How to fix the Docker permission denied error on Ubuntu"},"content":{"rendered":"<?xml encoding=\"utf-8\" ?><p>The Docker permission denied error usually occurs when <strong>your user account doesn&rsquo;t have permission to access the Docker daemon socket or required files and directories<\/strong>.<\/p><p>Docker uses these restrictions to prevent unauthorized access. But they can disrupt your workflow when you set up development environments on Ubuntu.<\/p><p>To fix the Docker permission denied error, follow these six proven solutions:<\/p><ol class=\"wp-block-list\">\n<li><strong>Modify user group membership<\/strong>. Add your user account to the <strong>docker<\/strong> group so you can run Docker commands without <strong>sudo<\/strong>.<\/li>\n\n\n\n<li><strong>Adjust file and directory ownership<\/strong>. Update the ownership of configuration files and mounted volumes to ensure the Docker engine can read and write data.<\/li>\n\n\n\n<li><strong>Inspect socket permissions<\/strong>. Check the permission levels of the Docker Unix socket to confirm that the communication channel isn&rsquo;t restricted.<\/li>\n\n\n\n<li><strong>Update script execution rights<\/strong>. Make sure Dockerfile commands and <strong>ENTRYPOINT<\/strong> scripts have execute permissions to avoid container startup failures.<\/li>\n\n\n\n<li><strong>Configure hardware access<\/strong>. Allow containers to access specific devices, such as USB devices or GPUs, to resolve hardware-related permission issues.<\/li>\n\n\n\n<li><strong>Refresh the Docker daemon<\/strong>. Restart the Docker service and your user session to apply all permission and group changes.<\/li>\n<\/ol><p>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-prerequisites\"><strong>Prerequisites<\/strong><\/h2><p>Before fixing the Docker&rsquo; permission denied &lsquo;error, ensure your Linux system meets the requirements for changing administrative settings.<\/p><ul class=\"wp-block-list\">\n<li><strong>Administrative access<\/strong>. You need <strong>sudo<\/strong> or root privileges to modify user groups and file permissions.<\/li>\n\n\n\n<li><strong>User group verification<\/strong>. Check your current group memberships by running the <strong>groups $USER<\/strong> command.<\/li>\n<\/ul><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69e19809160b4\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1168\" height=\"294\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-groups-user.png\/public\" alt=\"Terminal output showing current Linux user group memberships\" class=\"wp-image-137654\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-groups-user.png\/w=1168,fit=scale-down 1168w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-groups-user.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-groups-user.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-groups-user.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-groups-user.png\/w=768,fit=scale-down 768w\" sizes=\"auto, (max-width: 1168px) 100vw, 1168px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--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><\/div><ul class=\"wp-block-list\">\n<li><strong>Docker installation<\/strong>. Confirm that <a href=\"\/ng\/tutorials\/how-to-install-docker-on-ubuntu\">Docker is installed<\/a> and running by executing <strong>docker &ndash;version<\/strong>.<\/li>\n<\/ul><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69e1980918740\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"292\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-docker-version-1-scaled.png\/public\" alt=\"Terminal output confirming the installed Docker version\" class=\"wp-image-137655\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-docker-version-1-scaled.png\/w=2560,fit=scale-down 2560w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-docker-version-1-scaled.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-docker-version-1-scaled.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-docker-version-1-scaled.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-docker-version-1-scaled.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-docker-version-1-scaled.png\/w=1536,fit=scale-down 1536w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-docker-version-1-scaled.png\/w=2048,fit=scale-down 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--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><\/div><p>While these instructions focus on Ubuntu, they also apply to most Debian-based distributions.<\/p><h2 class=\"wp-block-heading\" id=\"h-1-add-your-user-to-the-docker-group\"><strong>1. Add your user to the Docker group<\/strong><\/h2><p>The most common cause of the permission denied error is that your user account isn&rsquo;t part of the <strong>docker<\/strong> group.<\/p><p>By default, the Docker daemon runs as a root-owned service. Only users in the <strong>docker<\/strong> group can communicate with it without using <strong>sudo<\/strong>.<\/p><p>To fix this issue, add your current user to the <strong>docker<\/strong> group:<\/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>This command updates your user account by appending it (<strong>-a<\/strong>) to the specified group (<strong>-G<\/strong>). As a result, your user gains permission to access the Docker daemon socket and run <a href=\"\/ng\/tutorials\/docker-cheat-sheet\">Docker commands<\/a> directly.<\/p><p>To apply the new group membership, log out and then log back in.<\/p><p>After logging back in, confirm the change took effect:<\/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>The output should include <strong>docker<\/strong> in the list of groups.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69e198091af47\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1182\" height=\"304\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-id-ng-docker-highlighted.png\/public\" alt=\"Terminal output showing docker group membership highlighted\" class=\"wp-image-137656\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-id-ng-docker-highlighted.png\/w=1182,fit=scale-down 1182w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-id-ng-docker-highlighted.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-id-ng-docker-highlighted.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-id-ng-docker-highlighted.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-id-ng-docker-highlighted.png\/w=768,fit=scale-down 768w\" sizes=\"auto, (max-width: 1182px) 100vw, 1182px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--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><\/div><p>If you want to test immediately without logging out, run:<\/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>This command applies the group change to your current terminal session only.<\/p><h2 class=\"wp-block-heading\" id=\"h-2-fix-file-and-directory-permission-issues\"><strong>2. Fix file and directory permission issues<\/strong><\/h2><p>If adding your user to the group doesn&rsquo;t resolve the issue, incorrect permissions on configuration files or mounted volumes may cause the error.<\/p><p>Docker needs read and write access to its configuration files, especially <strong>config.json<\/strong>.<\/p><p>First, check the permissions of your local Docker configuration directory:<\/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\"><figure data-wp-context='{\"imageId\":\"69e198091d8ac\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"318\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-ls-l-docker-root-root-highlighted-scaled.png\/public\" alt=\"Terminal output showing root ownership of Docker config files\" class=\"wp-image-137657\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-ls-l-docker-root-root-highlighted-scaled.png\/w=2560,fit=scale-down 2560w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-ls-l-docker-root-root-highlighted-scaled.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-ls-l-docker-root-root-highlighted-scaled.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-ls-l-docker-root-root-highlighted-scaled.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-ls-l-docker-root-root-highlighted-scaled.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-ls-l-docker-root-root-highlighted-scaled.png\/w=1536,fit=scale-down 1536w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-ls-l-docker-root-root-highlighted-scaled.png\/w=2048,fit=scale-down 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--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><\/div><p>If the output shows that the files are owned by <strong>root<\/strong> instead of your user, change the ownership with the <a href=\"\/ng\/tutorials\/linux-chown-command\">chown command<\/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>This command recursively changes the ownership of the <strong>.docker<\/strong> directory to your current user.<\/p><p>Next, fix permission issues related to mounted volumes. When you mount a host directory into a container, the container user needs permission to read from or write to that directory.<\/p><p>For example, if you run a container with a 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>Make sure the host directory <strong>~\/data<\/strong> has the correct permissions. You can grant read and write access to the user (<strong>u<\/strong>) with the following <a href=\"\/ng\/tutorials\/how-to-change-linux-permissions-and-owners\">chmod command<\/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=\"\">chmod u+rw ~\/data<\/pre><p>This guarantees that the user who owns the directory has enough permissions to manage data inside the mounted volume.<\/p><h2 class=\"wp-block-heading\" id=\"h-3-check-docker-socket-permissions\"><strong>3. Check Docker socket permissions<\/strong><\/h2><p>The Docker daemon communicates through a Unix socket located at<strong> \/var\/run\/docker.sock<\/strong>. If this socket has incorrect permissions, the Docker client can&rsquo;t send commands to the daemon.<\/p><p>Check the current socket permissions:<\/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>You should see output similar to the following:<\/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>This output shows that <strong>root<\/strong> owns the socket and the <strong>docker<\/strong> group has read and write access. If you see this output and your user belongs to the <strong>docker<\/strong> group, the socket configuration is correct.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69e19809202f4\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"177\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-ls-l-var-run-docker-sock-root-docker-highlighted-scaled.png\/public\" alt=\"Terminal output showing docker.sock owned by root and docker group\" class=\"wp-image-137658\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-ls-l-var-run-docker-sock-root-docker-highlighted-scaled.png\/w=2560,fit=scale-down 2560w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-ls-l-var-run-docker-sock-root-docker-highlighted-scaled.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-ls-l-var-run-docker-sock-root-docker-highlighted-scaled.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-ls-l-var-run-docker-sock-root-docker-highlighted-scaled.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-ls-l-var-run-docker-sock-root-docker-highlighted-scaled.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-ls-l-var-run-docker-sock-root-docker-highlighted-scaled.png\/w=1536,fit=scale-down 1536w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-ls-l-var-run-docker-sock-root-docker-highlighted-scaled.png\/w=2048,fit=scale-down 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--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><\/div><p>If the group isn&rsquo;t <strong>docker<\/strong> or the permissions differ, don&rsquo;t change them manually by running <strong>chmod 666 \/var\/run\/docker.sock<\/strong>, especially in production environments.<\/p><p>This command creates a serious security risk by giving all system users access to the Docker daemon, which effectively grants root-level control over the host.<\/p><p>Instead, rely on group membership by adding your user to the <strong>docker<\/strong> group. The Docker daemon automatically sets the correct socket permissions on startup.<\/p><h2 class=\"wp-block-heading\" id=\"h-4-fix-dockerfile-or-entrypoint-script-permissions\"><strong>4. Fix Dockerfile or ENTRYPOINT script permissions<\/strong><\/h2><p>A Docker permission denied error can also occur inside a container when the entrypoint script lacks execute permissions.<\/p><p>This issue often appears when you move scripts from a non-Linux file system, such as Windows, into the Docker build context. In these cases, the executable bit can be lost.<\/p><p>When this happens, the container fails to start because it can&rsquo;t run the script defined in the <strong>ENTRYPOINT<\/strong> or <strong>CMD<\/strong> instruction.<\/p><p>To fix the issue, add a <strong>RUN<\/strong> instruction after the <strong>COPY<\/strong> line in your Dockerfile. This grants execute permissions to the script.<\/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\"><figure data-wp-context='{\"imageId\":\"69e1980922b50\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2560\" height=\"1576\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-nano-dockerfile-run-chmod-entrypoint-sh-highlighted-scaled.png\/public\" alt=\"Dockerfile open in nano with chmod entrypoint script highlighted\" class=\"wp-image-137659\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-nano-dockerfile-run-chmod-entrypoint-sh-highlighted-scaled.png\/w=2560,fit=scale-down 2560w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-nano-dockerfile-run-chmod-entrypoint-sh-highlighted-scaled.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-nano-dockerfile-run-chmod-entrypoint-sh-highlighted-scaled.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-nano-dockerfile-run-chmod-entrypoint-sh-highlighted-scaled.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-nano-dockerfile-run-chmod-entrypoint-sh-highlighted-scaled.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-nano-dockerfile-run-chmod-entrypoint-sh-highlighted-scaled.png\/w=1536,fit=scale-down 1536w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-nano-dockerfile-run-chmod-entrypoint-sh-highlighted-scaled.png\/w=2048,fit=scale-down 2048w\" sizes=\"auto, (max-width: 2560px) 100vw, 2560px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--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><\/div><p>This guarantees the script remains executable regardless of its permissions on the host machine. You&rsquo;ll often need this step when building custom images that rely on startup scripts.<\/p><h2 class=\"wp-block-heading\" id=\"h-5-grant-device-access-to-docker-containers\"><strong>5. Grant device access to Docker containers<\/strong><\/h2><p>If a container needs to interact with hardware devices, such as a USB drive, webcam, or GPU, you may see a permission denied error for a device path like <strong>\/dev\/ttyUSB0<\/strong>.<\/p><p>By default, containers run in isolation and can&rsquo;t access host devices. To allow access, explicitly pass the device when you <a href=\"\/ng\/tutorials\/how-to-create-docker-container\">start the container<\/a> using the <strong>&ndash;device<\/strong> flag:<\/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>If the container needs broader permissions but not full device access, grant specific Linux capabilities with the <strong>&ndash;cap-add<\/strong> flag:<\/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>This approach follows the principle of least privilege &ndash; grant only the capabilities the container actually needs. Common capabilities include <strong>NET_ADMIN<\/strong> for network configuration and <strong>SYS_PTRACE<\/strong> for debugging.<\/p><p>When specific devices or capabilities aren&rsquo;t enough, you can use the <strong>&ndash;privileged<\/strong> flag:<\/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\"><figure data-wp-context='{\"imageId\":\"69e1980925357\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"1860\" height=\"334\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-docker-run-privileged-my-image.png\/public\" alt=\"Terminal command running a container with the privileged flag\" class=\"wp-image-137660\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-docker-run-privileged-my-image.png\/w=1860,fit=scale-down 1860w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-docker-run-privileged-my-image.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-docker-run-privileged-my-image.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-docker-run-privileged-my-image.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-docker-run-privileged-my-image.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-docker-run-privileged-my-image.png\/w=1536,fit=scale-down 1536w\" sizes=\"auto, (max-width: 1860px) 100vw, 1860px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--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><\/div><p>This option gives the container full access to all host devices and disables most security isolation features.<\/p><p>Containers started in this mode can gain root-level control over the host system. Use <strong>&ndash;privileged<\/strong> only in trusted local development environments or when no safer alternatives are applicable.<\/p><p>For production workloads, always prefer <strong>&ndash;device<\/strong> for specific hardware or<strong> &ndash;cap-add<\/strong> for specific capabilities.<\/p><h2 class=\"wp-block-heading\" id=\"h-6-restart-docker-and-test-your-setup\"><strong>6. Restart Docker and test your setup<\/strong><\/h2><p>After you apply user group changes or permission fixes, restart the Docker service so the daemon recognizes the updated configuration.<\/p><p>Restart Docker with <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>After the service restarts, verify the fix by running the standard <strong>hello-world<\/strong> container without using <strong>sudo<\/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=\"\">docker run hello-world<\/pre><p>If the image downloads and runs successfully and displays a welcome message, you&rsquo;ve resolved the permission issue.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69e1980927ae9\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img loading=\"lazy\" decoding=\"async\" width=\"2150\" height=\"1060\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-run-hello-world-download-complete-hello-from-docker-highlighted.png\/public\" alt=\"Docker hello-world container output confirming successful setup\" class=\"wp-image-137661\" srcset=\"https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-run-hello-world-download-complete-hello-from-docker-highlighted.png\/w=2150,fit=scale-down 2150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-run-hello-world-download-complete-hello-from-docker-highlighted.png\/w=300,fit=scale-down 300w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-run-hello-world-download-complete-hello-from-docker-highlighted.png\/w=1024,fit=scale-down 1024w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-run-hello-world-download-complete-hello-from-docker-highlighted.png\/w=150,fit=scale-down 150w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-run-hello-world-download-complete-hello-from-docker-highlighted.png\/w=768,fit=scale-down 768w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-run-hello-world-download-complete-hello-from-docker-highlighted.png\/w=1536,fit=scale-down 1536w, https:\/\/imagedelivery.net\/LqiWLm-3MGbYHtFuUbcBtA\/wp-content\/uploads\/sites\/2\/2025\/04\/terminal-run-hello-world-download-complete-hello-from-docker-highlighted.png\/w=2048,fit=scale-down 2048w\" sizes=\"auto, (max-width: 2150px) 100vw, 2150px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--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><\/div><p>If the error persists, restart the entire system to make sure all group memberships and session changes take effect:<\/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-what-should-you-learn-next-in-docker\"><strong>What should you learn next in Docker?<\/strong><\/h2><p>Now that your Docker installation works without permission errors, you&rsquo;re ready to work with containers confidently and securely.<\/p><p>Fixing environment issues is an essential first step in your Docker learning path. It lets you focus on building and deploying applications instead of troubleshooting setup problems.<\/p><p>As a next step, build a deeper understanding of core Docker concepts by reading our complete <a href=\"\/ng\/tutorials\/docker-tutorial\">Docker tutorial<\/a>. It covers image management, container lifecycles, Docker Compose, data persistence, and container networking.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Docker permission denied error usually occurs when your user account doesn&rsquo;t have permission to access the Docker daemon socket or required files and directories. Docker uses these restrictions to prevent unauthorized access. But they can disrupt your workflow when you set up development environments on Ubuntu. To fix the Docker permission denied error, follow [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/ng\/tutorials\/how-to-fix-docker-permission-denied-error\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":411,"featured_media":143358,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"How to fix the Docker permission denied error?","rank_math_description":"Learn how to fix the Docker permission denied error, from adding users to the Docker group to restarting the daemon and testing your setup.","rank_math_focus_keyword":"docker permission denied","footnotes":""},"categories":[22644],"tags":[],"class_list":["post-126856","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-vps"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/how-to-fix-docker-permission-denied-error","default":0},{"locale":"en-UK","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/how-to-fix-docker-permission-denied-error","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/how-to-fix-docker-permission-denied-error","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/how-to-fix-docker-permission-denied-error","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/how-to-fix-docker-permission-denied-error","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/how-to-fix-docker-permission-denied-error","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/how-to-fix-docker-permission-denied-error","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/how-to-fix-docker-permission-denied-error","default":0}],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/ng\/tutorials\/wp-json\/wp\/v2\/posts\/126856","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/ng\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/ng\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/ng\/tutorials\/wp-json\/wp\/v2\/users\/411"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/ng\/tutorials\/wp-json\/wp\/v2\/comments?post=126856"}],"version-history":[{"count":7,"href":"https:\/\/www.hostinger.com\/ng\/tutorials\/wp-json\/wp\/v2\/posts\/126856\/revisions"}],"predecessor-version":[{"id":143357,"href":"https:\/\/www.hostinger.com\/ng\/tutorials\/wp-json\/wp\/v2\/posts\/126856\/revisions\/143357"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/ng\/tutorials\/wp-json\/wp\/v2\/media\/143358"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/ng\/tutorials\/wp-json\/wp\/v2\/media?parent=126856"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/ng\/tutorials\/wp-json\/wp\/v2\/categories?post=126856"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/ng\/tutorials\/wp-json\/wp\/v2\/tags?post=126856"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}