Chyba Docker „Povolenie odmietnuté“.

Chyba Docker Povolenie Odmietnute



Pri práci s Dockerom sa môžete stretnúť s prípadom, keď príkaz vráti chybu „povolenie odmietnuté“. Táto chyba sa vyskytuje, keď sa pokúsite spustiť Docker bez dostatočných povolení pre príkaz.

Docker v predvolenom nastavení vyžaduje oprávnenia sudo alebo root na vykonávanie súvisiacich príkazov. Pokus o spustenie akéhokoľvek príkazu bez požadovaných privilégií vedie k neslávne známej chybe „povolenie odmietnuté“.







Tento tutoriál poskytuje rôzne metódy a techniky, ktoré môžete použiť na opravu chyby „povolenie odmietnuté“ pri pokuse o spustenie príkazov Docker.



Majte na pamäti, že nepokrýva proces spustenia Dockera v prostredí bez koreňového adresára. Náš návod na rootless Docker si môžete pozrieť v nasledujúcom zdroji:



Požiadavky:

Ako môžete hádať, ak chcete sledovať tento príspevok, musíte mať nasledujúce:





    1. Docker verzia 20.0 a vyššia
    2. Sudo alebo root povolenia na hostiteľskom systéme

Čo je chyba „Povolenie odmietnuté“?

Keď sa v Dockeri vyskytne chyba „povolenie odmietnuté“, znamená to, že hostiteľský systém nemôže nadviazať komunikáciu s démonom Docker z dôvodu nedostatočných povolení. Príklad je uvedený v nasledujúcom texte:

$ docker spustiť -to busybox sh



Ak narazíte na danú chybu, môžete použiť niektoré z nasledujúcich metód, aby ste sa naučili, ako ju opraviť.



Metóda 1: Spustite Docker ako root

Prvým a najzrejmejším spôsobom riešenia chyby Docker „povolenie odmietnuté“ je použitie príkazu „sudo“. Ak máte oprávnenia sudo, môžete to opraviť spustením súvisiaceho príkazu pomocou sudo.

Napríklad, aby sme túto chybu opravili, môžeme pred príkaz pridať sudo takto:

$ sudo docker spustiť -to busybox sh



Ako vidíte, Docker úspešne stiahne požadované obrázky a spustí kontajner.

Metóda 2: Reštartujte démona Docker

Niekedy sa môže v Dockeri zobraziť chyba „povolenie odmietnuté“, ak má motor problém. Namiesto manuálneho sledovania problému sa môžete pokúsiť o rýchly reštart démona Docker, aby ste ho znova načítali.

Začnite skontrolovaním stavu démona Docker takto:

$ docker systemctl status docker



Keď sa ubezpečíte, že Docker beží, reštartujte službu pomocou nasledujúceho príkazu:

$ sudo systemctl reštartujte ukotvenie


Toto by malo spustiť démona Docker a vyriešiť akýkoľvek potenciálny problém, ktorý by vám mohol brániť v spustení akéhokoľvek príkazu.

Metóda 3: Povoľte používateľa iného typu než root

Ďalšou metódou, ktorú môžete použiť na vyriešenie chyby „povolenie odmietnuté“ v Dockeri, je umožniť používateľom bez oprávnenia root vykonávať príkazy Docker.

Ak chcete povoliť túto metódu, prihláste sa do hostiteľského systému a vytvorte novú skupinu pre Docker.

$ sudo groupadd -f doker


Ďalej pridajte ľubovoľného používateľa, ktorého chcete, do skupiny Docker takto:

$ sudo usermod -aG docker linuxhint


Predchádzajúci príkaz by mal pridať používateľa linuxhintu do skupiny Docker.

Nakoniec použite zmeny skupiny na aktuálnu reláciu pomocou nasledujúceho príkazu:

$ newgrp docker


Po dokončení môžete spustiť ľubovoľný príkaz Docker bez použitia sudo pre ktoréhokoľvek používateľa v skupine Docker.

Metóda 4: Prekonfigurujte povolenia Docker

Ďalšou metódou, ktorú môžete použiť, je resetovanie povolení pre zásuvky Docker. Začnite zmenou vlastníctva soketu Docker Unix spustením nasledujúceho príkazu:

$ sudo chown root:docker / bol / behať / docker.sock


Potom prevezmite vlastníctvo skrytého adresára Docker vo svojom domovskom adresári pomocou príkazu takto:

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


Nakoniec priraďte skupine oprávnenia na čítanie a zápis do adresára takto:

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


Poskytnuté metódy by mali nastaviť dostatočné povolenia pre základné súbory a adresáre Docker.

Záver

V tomto návode sme sa naučili, ako môžeme použiť štyri hlavné metódy na vyriešenie chyby Docker „povolenie odmietnuté“ pri vyvolaní príkazu Docker.