„Docker“ klaida „Leidimas atmestas“.

Docker Klaida Leidimas Atmestas



Dirbdami su „Docker“, galite susidurti su atveju, kai komanda grąžina klaidą „leidimas atmestas“. Ši klaida atsiranda, kai bandote paleisti „Docker“ neturėdami pakankamai komandos teisių.

„Docker“ reikalauja sudo arba root teisių, kad pagal numatytuosius nustatymus būtų vykdomos susijusios komandos. Bandymas paleisti bet kurią komandą be reikalingų privilegijų sukelia liūdnai pagarsėjusią klaidą „leidimas atmestas“.







Šioje mokymo programoje pateikiami įvairūs metodai ir metodai, kuriuos galite naudoti norėdami ištaisyti klaidą „leidimas atmestas“, kai bandote paleisti „Docker“ komandas.



Atminkite, kad tai neapima „Docker“ paleidimo proceso be šaknų aplinkoje. Galite patikrinti mūsų mokymo programą apie „Docker“ be šaknų šiuose šaltiniuose:



Reikalavimai:

Kaip galite atspėti, norėdami sekti šį įrašą, turite turėti šiuos dalykus:





    1. Docker 20.0 ir naujesnė versija
    2. Sudo arba root leidimai pagrindinio kompiuterio sistemoje

Kas yra klaida „Leidimas atmestas“?

Kai „Docker“ įvyksta klaida „leidimas atmestas“, tai reiškia, kad pagrindinė sistema negali užmegzti ryšio su „Docker“ demonu dėl nepakankamų leidimų. Pavyzdys parodytas toliau:

$ dokininko bėgimas -tai busybox sh



Jei susiduriate su nurodyta klaida, galite naudoti kai kuriuos iš šių būdų, kad sužinotumėte, kaip ją ištaisyti.



1 būdas: paleiskite „Docker“ kaip šaknį

Pirmasis ir akivaizdžiausias „Docker“ klaidos „leidimas atmestas“ sprendimo būdas yra „sudo“ komandos naudojimas. Jei turite sudo privilegijas, galite ją išspręsti paleisdami susijusią komandą naudodami sudo.

Pavyzdžiui, norėdami ištaisyti minėtą klaidą, prieš komandą galime pridėti sudo taip:

$ sudo dokininko bėgimas -tai busybox sh



Kaip matote, „Docker“ sėkmingai ištraukia reikiamus vaizdus ir paleidžia konteinerį.

2 būdas: iš naujo paleiskite „Docker“ demoną

Kartais „Docker“ galite gauti klaidą „leidimas atmestas“, jei variklis turi problemų. Užuot rankiniu būdu nustatę problemą, galite pabandyti greitai iš naujo paleisti „Docker“ demoną ir įkelti jį iš naujo.

Pradėkite tikrindami Docker demono būseną taip:

$ docker systemctl status docker



Įsitikinę, kad „Docker“ veikia, iš naujo paleiskite paslaugą naudodami šią komandą:

$ sudo systemctl iš naujo paleiskite doką


Tai turėtų paleisti „Docker“ demoną ir išspręsti visas galimas problemas, kurios gali trukdyti vykdyti bet kokią komandą.

3 būdas: įgalinkite ne root naudotoją

Kitas būdas, kurį galite naudoti norėdami išspręsti „Docker“ klaidą „leidimas uždraustas“, yra leisti ne root vartotojams vykdyti „Docker“ komandas.

Norėdami įjungti šį metodą, prisijunkite prie pagrindinės sistemos ir sukurkite naują Docker grupę.

$ sudo sugrupuoti -f dokininkas


Tada pridėkite bet kurį norimą vartotoją prie Docker grupės taip:

$ sudo usermod -aG docker linuxhint


Ankstesnė komanda turėtų pridėti linuxhint vartotoją į Docker grupę.

Galiausiai pritaikykite grupės pakeitimus dabartinei sesijai naudodami šią komandą:

$ newgrp docker


Baigę galite paleisti bet kurią „Docker“ komandą nenaudodami sudo jokiam „Docker“ grupės vartotojui.

4 būdas: iš naujo sukonfigūruokite „Docker“ leidimus

Kitas būdas, kurį galite naudoti, yra „Docker“ lizdų leidimų nustatymas iš naujo. Pradėkite pakeisdami Docker Unix lizdo nuosavybę, vykdydami šią komandą:

$ sudo chown šaknis: docker / buvo / paleisti / dokininkas.kojinė


Tada perimkite paslėpto Docker katalogo nuosavybę savo namų kataloge naudodami komandą taip:

$ sudo chown -R $USER : $USER $HOME / .dokeris


Galiausiai priskirkite grupę su skaitymo ir rašymo leidimais katalogui taip:

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


Pateikti metodai turėtų nustatyti pakankamus leidimus esminiams „Docker“ failams ir katalogams.

Išvada

Šiame vadove sužinojome, kaip galime naudoti keturis pagrindinius metodus, kad pašalintume „Docker“ klaidą „leidimas atmestas“, kai iškviečiame „Docker“ komandą.