Pri delu z Dockerjem lahko naletite na primer, ko ukaz vrne napako »dovoljenje zavrnjeno«. Ta napaka se pojavi, ko poskušate zagnati Docker brez zadostnih dovoljenj za ukaz.
Docker privzeto zahteva sudo ali korenska dovoljenja za izvajanje povezanih ukazov. Poskus zagona katerega koli ukaza brez zahtevanih privilegijev vodi do zloglasne napake »dovoljenje zavrnjeno«.
Ta vadnica ponuja različne metode in tehnike, s katerimi lahko odpravite napako »dovoljenje zavrnjeno«, ko poskušate zagnati ukaze Docker.
Upoštevajte, da ne zajema postopka izvajanja Dockerja v okolju brez korenin. Našo vadnico o Dockerju brez korenin si lahko ogledate v naslednjem viru:
Zahteve:
Kot lahko ugibate, morate za spremljanje te objave imeti naslednje:
- Docker različica 20.0 in novejša
- Sudo ali korenska dovoljenja v gostiteljskem sistemu
Kaj je napaka »Dovoljenje zavrnjeno«?
Ko se v Dockerju pojavi napaka »dovoljenje zavrnjeno«, to pomeni, da gostiteljski sistem ne more vzpostaviti komunikacije z demonom Docker zaradi nezadostnih dovoljenj. Primer je prikazan v naslednjem:
$ docker run -to busybox sh
Če naletite na dano napako, lahko uporabite nekatere od naslednjih metod, da se naučite, kako jo popraviti.
1. način: Zaženite Docker kot root
Prva in najbolj očitna metoda reševanja Dockerjeve napake »dovoljenje zavrnjeno« je uporaba ukaza »sudo«. Če imate privilegije sudo, lahko to popravite tako, da zaženete povezani ukaz z uporabo sudo.
Na primer, da popravimo omenjeno napako, lahko dodamo sudo pred ukaz, kot sledi:
$ sudo docker run -to busybox sh
Kot lahko vidite, Docker uspešno potegne zahtevane slike in zažene vsebnik.
2. način: Znova zaženite Docker Daemon
Včasih lahko v Dockerju dobite napako »dovoljenje zavrnjeno«, če ima motor težave. Namesto da ročno izsledite težavo, lahko poskusite hitro znova zagnati demon Docker, da ga znova naložite.
Začnite s preverjanjem statusa demona Docker na naslednji način:
$ docker systemctl status docker
Ko zagotovite, da Docker deluje, znova zaženite storitev z naslednjim ukazom:
To bi moralo zagnati demon Docker in odpraviti morebitno težavo, ki bi vam morda preprečevala izvajanje katerega koli ukaza.
3. način: omogočite nekorenskega uporabnika
Druga metoda, ki jo lahko uporabite za razrešitev napake »dovoljenje zavrnjeno« v Dockerju, je, da nekorenskim uporabnikom omogočite izvajanje ukazov Docker.
Če želite omogočiti to metodo, se prijavite v gostiteljski sistem in ustvarite novo skupino za Docker.
$ sudo groupadd -f docker
Nato v skupino Docker dodajte poljubnega uporabnika, kot sledi:
Prejšnji ukaz bi moral dodati uporabnika linuxhint v skupino Docker.
Končno uporabite spremembe skupine za trenutno sejo z naslednjim ukazom:
$ newgrp docker
Ko končate, lahko zaženete kateri koli ukaz Docker brez uporabe sudo za katerega koli uporabnika v skupini Docker.
4. način: Ponovno konfigurirajte dovoljenja Docker
Naslednja metoda, ki jo lahko uporabite, je ponastavitev dovoljenj za vtičnice Docker. Začnite tako, da spremenite lastništvo vtičnice Docker Unix z izvajanjem naslednjega ukaza:
$ sudo chown root:docker / je bil / teči / docker.sock
Nato prevzamete lastništvo skritega imenika Docker v domačem imeniku z naslednjim ukazom:
Na koncu imeniku dodelite skupino z dovoljenji za branje in pisanje, kot sledi:
Predložene metode morajo nastaviti zadostna dovoljenja za bistvene datoteke in imenike Docker.
Zaključek
V tej vadnici smo se naučili, kako lahko uporabimo štiri glavne metode za razrešitev napake Docker »permission denied« pri klicu ukaza Docker.