Kada radite s Dockerom, možete naići na instancu u kojoj naredba vraća pogrešku 'permission denied'. Ova se pogreška javlja kada pokušate pokrenuti Docker bez dovoljnih dozvola za naredbu.
Docker prema zadanim postavkama zahtijeva sudo ili root dozvole za izvršavanje pridruženih naredbi. Pokušaj pokretanja bilo koje naredbe bez potrebnih privilegija dovodi do zloglasne pogreške 'dozvola odbijena'.
Ovaj vodič pruža različite metode i tehnike koje možete koristiti za ispravljanje pogreške 'dozvola odbijena' prilikom pokušaja pokretanja Docker naredbi.
Imajte na umu da ne pokriva proces pokretanja Dockera u okruženju bez korijena. Možete pogledati naš vodič o Dockeru bez root-a u sljedećem resursu:
Zahtjevi:
Kao što možete pogoditi, da biste pratili ovu objavu, morate imati sljedeće:
- Docker verzija 20.0 i novije
- Sudo ili root dozvole na glavnom sustavu
Što je pogreška 'Dozvola odbijena'?
Kada se u Dockeru pojavi pogreška 'dozvola odbijena', to znači da glavni sustav ne može uspostaviti komunikaciju s Docker demonom zbog nedovoljnih dozvola. Primjer je prikazan u nastavku:
$ docker run -to busybox sh
Ako naiđete na zadanu pogrešku, možete upotrijebiti neke od sljedećih metoda da biste saznali kako je popraviti.
Metoda 1: Pokrenite Docker kao root
Prva i najočitija metoda rješavanja Dockerove pogreške 'permission denied' je korištenje naredbe 'sudo'. Ako imate sudo privilegije, to možete popraviti pokretanjem pridružene naredbe koristeći sudo.
Na primjer, da bismo ispravili navedenu pogrešku, možemo dodati sudo prije naredbe na sljedeći način:
$ sudo docker run -to busybox sh
Kao što vidite, Docker uspješno povlači potrebne slike i pokreće spremnik.
Metoda 2: Ponovno pokrenite Docker Daemon
Ponekad možete dobiti pogrešku 'dozvola odbijena' u Dockeru ako motor ima problema. Umjesto da ručno pronađete problem, možete pokušati brzo ponovno pokrenuti demon Docker da biste ga ponovno učitali.
Započnite provjerom statusa Docker demona na sljedeći način:
$ docker systemctl status docker
Nakon što provjerite radi li Docker, ponovno pokrenite uslugu sljedećom naredbom:
Ovo bi trebalo pokrenuti Docker demon i riješiti svaki potencijalni problem koji bi vas mogao spriječiti da pokrenete bilo koju naredbu.
Metoda 3: Omogućite nekorijenskog korisnika
Druga metoda koju možete upotrijebiti za rješavanje pogreške 'dozvola odbijena' u Dockeru je dopuštanje nekorijenskim korisnicima da izvršavaju Docker naredbe.
Da biste omogućili ovu metodu, prijavite se u sustav domaćina i stvorite novu grupu za Docker.
$ sudo groupadd -f lučki radnik
Zatim dodajte bilo kojeg korisnika kojeg želite u Docker grupu na sljedeći način:
Prethodna naredba trebala bi dodati korisnika linuxhinta u Docker grupu.
Na kraju, primijenite grupne promjene na trenutnu sesiju pomoću sljedeće naredbe:
$ newgrp docker
Nakon dovršetka, možete pokrenuti bilo koju Docker naredbu bez korištenja sudo za bilo kojeg korisnika u Docker grupi.
Metoda 4: Ponovno konfigurirajte Docker dozvole
Sljedeća metoda koju možete koristiti je resetiranje dopuštenja za Docker utičnice. Započnite promjenom vlasništva Docker Unix utičnice pokretanjem sljedeće naredbe:
$ sudo žvakati root:docker / bio je / trčanje / doker.čarapa
Zatim preuzmite vlasništvo nad skrivenim Docker direktorijem u svom matičnom direktoriju koristeći naredbu kako slijedi:
Na kraju, dodijelite grupi s dozvolama za čitanje i pisanje direktoriju na sljedeći način:
Navedene metode trebale bi postaviti dovoljna dopuštenja za bitne Docker datoteke i direktorije.
Zaključak
U ovom vodiču naučili smo kako možemo koristiti četiri glavne metode za rješavanje Dockerove pogreške 'dopuštenje odbijeno' prilikom pozivanja Docker naredbe.