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í:
- Docker verze 20.0 a vyšší
- 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:
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ě:
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:
Nakonec přiřaďte skupině oprávnění pro čtení a zápis do adresáře následovně:
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.