Docker Napaka »Dovoljenje zavrnjeno«.

Docker Napaka Dovoljenje Zavrnjeno



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:





    1. Docker različica 20.0 in novejša
    2. 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:

$ sudo Docker za ponovni zagon systemctl


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:

$ sudo uporabniški mod -aG docker linuxhint


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:

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


Na koncu imeniku dodelite skupino z dovoljenji za branje in pisanje, kot sledi:

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


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.