Chyba Docker „Oprávnění odepřeno“.

Chyba Docker Opravneni Odepreno



Při práci s Dockerem se můžete setkat s instancí, kdy příkaz vrátí chybu „oprávnění odepřeno“. K této chybě dochází, když se pokusíte spustit Docker bez dostatečných oprávnění pro příkaz.

Docker vyžaduje ve výchozím nastavení oprávnění sudo nebo root k provádění souvisejících příkazů. Pokus o spuštění jakéhokoli příkazu bez požadovaných oprávnění vede k nechvalně známé chybě „povolení odepřeno“.







Tento výukový program poskytuje různé metody a techniky, které můžete použít k opravě chyby „oprávnění odepřeno“ při pokusu o spuštění příkazů Docker.



Mějte na paměti, že nezahrnuje proces spuštění Dockeru v prostředí bez kořenů. Náš návod na rootless Docker si můžete prohlédnout v následujícím zdroji:



Požadavky:

Jak můžete hádat, abyste mohli sledovat tento příspěvek, musíte mít následující:





    1. Docker verze 20.0 a vyšší
    2. Oprávnění Sudo nebo root na hostitelském systému

Co je chyba „Povolení odepřeno“?

Když se v Dockeru objeví chyba „povolení odepřeno“, znamená to, že hostitelský systém nemůže navázat komunikaci s démonem Docker kvůli nedostatečným oprávněním. Příklad je uveden v následujícím textu:

$ docker spustit -to busybox sh



Pokud se setkáte s danou chybou, můžete se pomocí některé z následujících metod naučit, jak ji opravit.



Metoda 1: Spusťte Docker jako root

První a nejzřejmější způsob řešení chyby Docker „povolení odepřeno“ je pomocí příkazu „sudo“. Pokud máte oprávnění sudo, můžete to opravit spuštěním přidruženého příkazu pomocí sudo.

Chcete-li například opravit uvedenou chybu, můžeme před příkaz přidat sudo takto:

$ sudo docker spustit -to busybox sh



Jak můžete vidět, Docker úspěšně stáhne požadované obrázky a spustí kontejner.

Metoda 2: Restartujte Docker Daemon

Někdy se může v Dockeru zobrazit chyba „povolení odepřeno“, pokud má motor problém. Namísto ručního sledování problému se můžete pokusit o rychlý restart démona Docker a znovu jej načíst.

Začněte kontrolou stavu démona Docker takto:

$ docker systemctl status docker



Jakmile se ujistíte, že Docker běží, restartujte službu pomocí následujícího příkazu:

$ sudo systemctl restart dockeru


Tím by se měl spustit démon Docker a vyřešit jakýkoli potenciální problém, který by vám mohl bránit ve spuštění jakéhokoli příkazu.

Metoda 3: Povolte uživatele bez oprávnění root

Další metodou, kterou můžete použít k vyřešení chyby „oprávnění odepřeno“ v Dockeru, je umožnit uživatelům bez oprávnění root spouštět příkazy Dockeru.

Chcete-li povolit tuto metodu, přihlaste se do hostitelského systému a vytvořte novou skupinu pro Docker.

$ sudo groupadd -F přístavní dělník


Dále přidejte libovolného uživatele, kterého chcete do skupiny Docker, následovně:

$ sudo usermod -aG docker linuxhint


Předchozí příkaz by měl přidat uživatele linuxhintu do skupiny Docker.

Nakonec použijte změny skupiny na aktuální relaci pomocí následujícího příkazu:

$ newgrp docker


Po dokončení můžete spustit jakýkoli příkaz Docker bez použití sudo pro libovolného uživatele ve skupině Docker.

Metoda 4: Překonfigurujte oprávnění Docker

Další metodou, kterou můžete použít, je resetování oprávnění pro sokety Docker. Začněte změnou vlastnictví soketu Docker Unix spuštěním následujícího příkazu:

$ sudo chown root:docker / byl / běh / docker.sock


Dále převezměte vlastnictví skrytého adresáře Docker ve svém domovském adresáři pomocí následujícího příkazu:

$ sudo chown -R ' $USER ' : ' $USER ' $HOME / .přístavní dělník


Nakonec přiřaďte skupině oprávnění pro čtení a zápis do adresáře následovně:

$ sudo chmod -R g+rw ' $HOME /.přístavní dělník'


Poskytnuté metody by měly nastavit dostatečná oprávnění pro základní soubory a adresáře Dockeru.

Závěr

V tomto tutoriálu jsme se naučili, jak můžeme použít čtyři hlavní metody k vyřešení chyby Docker „povolení odepřeno“ při vyvolání příkazu Dockeru.