Eroare Docker „Permisiune refuzată”.

Eroare Docker Permisiune Refuzata



Când lucrați cu Docker, este posibil să întâlniți o instanță în care comanda returnează o eroare „permisiune refuzată”. Această eroare apare atunci când încercați să rulați Docker fără permisiuni suficiente pentru comandă.

Docker necesită permisiuni sudo sau root pentru a executa comenzile asociate în mod implicit. Încercarea de a rula orice comandă fără privilegiile necesare duce la infama eroare „permisiune refuzată”.







Acest tutorial oferă diferitele metode și tehnici pe care le puteți utiliza pentru a remedia eroarea „permisiune refuzată” atunci când încercați să rulați comenzile Docker.



Rețineți că nu acoperă procesul de rulare a Docker într-un mediu fără rădăcină. Puteți verifica tutorialul nostru despre Docker fără rădăcină în următoarea resursă:



Cerințe:

După cum puteți ghici, pentru a urma această postare, trebuie să aveți următoarele:





    1. Docker versiunea 20.0 și mai sus
    2. Permisiuni Sudo sau root pe sistemul gazdă

Ce este eroarea „Permisiunea refuzată”?

Când apare eroarea „permisiune refuzată” în Docker, înseamnă că sistemul gazdă nu poate stabili o comunicare cu demonul Docker din cauza permisiunilor insuficiente. Un exemplu este prezentat în cele ce urmează:

$ docker run -aceasta busybox SH



Dacă întâmpinați eroarea dată, puteți utiliza unele dintre următoarele metode pentru a afla cum să o remediați.



Metoda 1: Rulați Docker ca rădăcină

Prima și cea mai evidentă metodă de rezolvare a erorii „permisiune refuzată” a lui Docker este utilizarea comenzii „sudo”. Dacă aveți privilegii sudo, îl puteți remedia rulând comanda asociată folosind sudo.

De exemplu, pentru a remedia eroarea menționată, putem adăuga sudo înainte de comandă, după cum urmează:

$ sudo docker run -aceasta busybox SH



După cum puteți vedea, Docker extrage cu succes imaginile necesare și rulează containerul.

Metoda 2: Reporniți Daemonul Docker

Uneori, puteți obține eroarea „permisiune refuzată” în Docker dacă motorul are o problemă. În loc să urmăriți manual problema, puteți încerca o repornire rapidă a demonului Docker pentru a-l reîncărca.

Începeți prin a verifica starea demonului Docker după cum urmează:

$ docker systemctl status docker



După ce vă asigurați că Docker rulează, reporniți serviciul cu următoarea comandă:

$ sudo systemctl reporniți docker


Acest lucru ar trebui să pornească demonul Docker și să remedieze orice problemă potențială care ar putea să vă împiedice să executați orice comandă.

Metoda 3: Activați utilizatorul non-root

O altă metodă pe care o puteți folosi pentru a rezolva eroarea „permisiune refuzată” în Docker este să permiteți utilizatorilor non-root să execute comenzile Docker.

Pentru a activa această metodă, conectați-vă la sistemul gazdă și creați un nou grup pentru Docker.

$ sudo groupadd -f docher


Apoi, adăugați orice utilizator pe care îl doriți în grupul Docker, după cum urmează:

$ sudo usermod -aG docker linuxhint


Comanda anterioară ar trebui să adauge utilizatorul linuxhint la grupul Docker.

În cele din urmă, aplicați modificările grupului la sesiunea curentă folosind următoarea comandă:

$ newgrp docker


Odată finalizat, puteți rula orice comandă Docker fără a utiliza sudo pentru orice utilizator din grupul Docker.

Metoda 4: Reconfigurați permisiunile Docker

Următoarea metodă pe care o puteți utiliza este resetarea permisiunilor pentru socket-urile Docker. Începeți prin a schimba dreptul de proprietate asupra socket-ului Docker Unix, rulând următoarea comandă:

$ sudo chown root:docker / a fost / alerga / docker.ciorap


Apoi, preluați proprietatea directorului Docker ascuns din directorul dvs. de acasă utilizând comanda după cum urmează:

$ sudo chown -R ' $USER ' : ' $USER ' $HOME / .docher


În cele din urmă, atribuiți grupului cu permisiunile de citire și scriere directorului după cum urmează:

$ sudo chmod -R g+rw ' $HOME /.docher'


Metodele furnizate ar trebui să stabilească permisiuni suficiente pentru fișierele și directoarele esențiale Docker.

Concluzie

În acest tutorial, am învățat cum putem folosi cele patru metode principale pentru a rezolva eroarea „permisiune refuzată” Docker atunci când invocăm o comandă Docker.