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:
- Docker verzia 20.0 a vyššia
- 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:
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:
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:
Nakoniec priraďte skupine oprávnenia na čítanie a zápis do adresára takto:
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.