Docker-fout 'Toestemming geweigerd'

Docker Fout Toestemming Geweigerd



Wanneer u met Docker werkt, kunt u een exemplaar tegenkomen waarbij de opdracht de foutmelding 'toestemming geweigerd' retourneert. Deze fout treedt op wanneer u de Docker probeert uit te voeren zonder voldoende machtigingen voor de opdracht.

Docker vereist standaard sudo- of root-machtigingen om de bijbehorende opdrachten uit te voeren. Pogingen om een ​​opdracht uit te voeren zonder de vereiste rechten leiden tot de beruchte fout 'toestemming geweigerd'.







Deze zelfstudie biedt de verschillende methoden en technieken die u kunt gebruiken om de fout 'toestemming geweigerd' op te lossen wanneer u probeert de Docker-opdrachten uit te voeren.



Houd er rekening mee dat het niet het proces omvat van het uitvoeren van Docker in een rootloze omgeving. Je kunt onze tutorial over rootless Docker bekijken in de volgende bron:



Vereisten:

Zoals je kunt raden, moet je, om dit bericht te volgen, over het volgende beschikken:





    1. Docker versie 20.0 en hoger
    2. Sudo- of root-rechten op het hostsysteem

Wat is de fout 'Toestemming geweigerd'?

Wanneer de fout ‘toestemming geweigerd’ optreedt in Docker, betekent dit dat het hostsysteem geen communicatie met de Docker-daemon tot stand kan brengen vanwege onvoldoende machtigingen. Een voorbeeld wordt hieronder getoond:

$ havenarbeider uitgevoerd -Het bezige doos sch



Als u de gegeven fout tegenkomt, kunt u enkele van de volgende methoden gebruiken om te leren hoe u deze kunt oplossen.



Methode 1: Voer de Docker uit als root

De eerste en meest voor de hand liggende methode om de fout ‘toestemming geweigerd’ van Docker op te lossen, is het gebruik van de opdracht ‘sudo’. Als u over sudo-rechten beschikt, kunt u dit oplossen door de bijbehorende opdracht uit te voeren met sudo.

Om de genoemde fout op te lossen, kunnen we bijvoorbeeld sudo als volgt vóór de opdracht toevoegen:

$ sudo havenarbeider uitgevoerd -Het bezige doos sch



Zoals u kunt zien, haalt Docker met succes de vereiste afbeeldingen op en voert de container uit.

Methode 2: Start de Docker Daemon opnieuw

Soms kunt u de foutmelding 'Toestemming geweigerd' krijgen in Docker als de engine een probleem heeft. In plaats van het probleem handmatig op te sporen, kunt u proberen de Docker-daemon snel opnieuw op te starten om deze opnieuw te laden.

Begin met het controleren van de status van de Docker-daemon als volgt:

$ docker systemctl-status docker



Zodra u zeker weet dat Docker actief is, start u de service opnieuw op met de volgende opdracht:

$ sudo systemctl herstart docker


Dit zou de Docker-daemon moeten opstarten en elk potentieel probleem moeten oplossen waardoor u mogelijk geen opdracht kunt uitvoeren.

Methode 3: Schakel de niet-rootgebruiker in

Een andere methode die u kunt gebruiken om de fout 'toestemming geweigerd' in Docker op te lossen, is door niet-rootgebruikers de Docker-opdrachten uit te laten voeren.

Om deze methode in te schakelen, logt u in op het hostsysteem en maakt u een nieuwe groep voor Docker.

$ sudo groeptoegevoegd -F havenarbeider


Voeg vervolgens als volgt elke gewenste gebruiker toe aan de Docker-groep:

$ sudo gebruikersmod -aG docker linuxhint


Het vorige commando zou de linuxhint-gebruiker aan de Docker-groep moeten toevoegen.

Pas ten slotte de groepswijzigingen toe op de huidige sessie met behulp van de volgende opdracht:

$ newgrp-docker


Eenmaal voltooid, kunt u elke Docker-opdracht uitvoeren zonder sudo te gebruiken voor elke gebruiker in de Docker-groep.

Methode 4: Configureer de Docker-machtigingen opnieuw

De volgende methode die u kunt gebruiken, is het opnieuw instellen van de machtigingen voor Docker-sockets. Begin met het wijzigen van het eigendom van de Docker Unix-socket door de volgende opdracht uit te voeren:

$ sudo gekauwd root:docker / was / loop / docker.sok


Neem vervolgens het eigendom van de verborgen Docker-map in uw thuismap over met behulp van de volgende opdracht:

$ sudo gekauwd -R ' $GEBRUIKER ' : ' $GEBRUIKER ' $HUIS / .docker


Wijs ten slotte de groep met lees- en schrijfrechten als volgt toe aan de map:

$ sudo chmod -R g+rw ' $HUIS /.docker'


De opgegeven methoden moeten voldoende machtigingen instellen voor essentiële Docker-bestanden en -mappen.

Conclusie

In deze zelfstudie hebben we geleerd hoe we de vier belangrijkste methoden kunnen gebruiken om de Docker-fout 'toestemming geweigerd' op te lossen bij het aanroepen van een Docker-opdracht.