Amikor a Dockerrel dolgozik, előfordulhat, hogy a parancs „engedély megtagadva” hibát ad vissza. Ez a hiba akkor fordul elő, ha a Dockert a parancshoz szükséges engedélyek nélkül próbálja meg futtatni.
A Docker alapértelmezés szerint sudo vagy root jogosultságokat igényel a társított parancsok végrehajtásához. Bármely parancs futtatásának kísérlete a szükséges jogosultságok nélkül a hírhedt „engedély megtagadva” hibához vezet.
Ez az oktatóanyag tartalmazza azokat a különféle módszereket és technikákat, amelyek segítségével kijavíthatja az „engedély megtagadva” hibát, amikor megpróbálja futtatni a Docker-parancsokat.
Ne feledje, hogy nem fedi le a Docker gyökér nélküli környezetben való futtatásának folyamatát. A gyökér nélküli Dockerről szóló oktatóanyagunkat a következő forrásban tekintheti meg:
Követelmények:
Ahogy sejtheti, a bejegyzés követéséhez a következők szükségesek:
- Docker 20.0 és újabb verzió
- Sudo vagy root jogosultságok a gazdagépen
Mi az „Engedély megtagadva” hiba?
Ha az „engedély megtagadva” hiba jelentkezik a Dockerben, az azt jelenti, hogy a gazdagép rendszer nem tud kommunikációt létesíteni a Docker démonnal az elégtelen engedélyek miatt. Egy példa látható az alábbiakban:
$ dokkolófuttatás -azt busybox SH
Ha találkozik az adott hibával, az alábbi módszerek valamelyikével megtudhatja, hogyan javíthatja ki.
1. módszer: Futtassa a Dockert gyökérként
Az első és legnyilvánvalóbb módszer a Docker „engedély megtagadva” hibájának megoldására a „sudo” parancs használata. Ha rendelkezik sudo jogosultságokkal, kijavíthatja a kapcsolódó parancs futtatásával a sudo segítségével.
Például az említett hiba kijavításához hozzáfűzhetjük a sudo-t a parancs elé a következőképpen:
$ sudo dokkolófuttatás -azt busybox SH
Mint látható, a Docker sikeresen lekéri a szükséges képeket, és futtatja a tárolót.
2. módszer: Indítsa újra a Docker démont
Néha előfordulhat, hogy a Dockerben az „engedély megtagadva” hibaüzenet jelenik meg, ha a motornak problémája van. A probléma kézi felderítése helyett megpróbálhatja a Docker démon gyors újraindítását az újratöltéshez.
Kezdje a Docker démon állapotának ellenőrzésével az alábbiak szerint:
$ docker systemctl állapot docker
Miután meggyőződött arról, hogy a Docker fut, indítsa újra a szolgáltatást a következő paranccsal:
Ennek be kell indítania a Docker démont, és ki kell javítania minden olyan lehetséges problémát, amely megakadályozhatja a parancsok futtatását.
3. módszer: Engedélyezze a nem root felhasználót
Egy másik módszer, amellyel megoldhatja a Docker „engedély megtagadva” hibáját, lehetővé teszi a nem root felhasználók számára a Docker-parancsok végrehajtását.
A módszer engedélyezéséhez jelentkezzen be a gazdagép rendszerbe, és hozzon létre egy új csoportot a Docker számára.
$ sudo groupadd -f dokkmunkás
Ezután adjon hozzá minden felhasználót a Docker-csoporthoz az alábbiak szerint:
Az előző parancsnak hozzá kell adnia a linuxhint felhasználót a Docker csoporthoz.
Végül alkalmazza a csoport módosításait az aktuális munkamenetre a következő paranccsal:
$ newgrp docker
Ha elkészült, bármelyik Docker-parancsot futtathatja anélkül, hogy a Docker-csoport bármely felhasználójához használná a sudo-t.
4. módszer: Konfigurálja újra a Docker-engedélyeket
A következő használható módszer a Docker socketek engedélyeinek visszaállítása. Kezdje a Docker Unix socket tulajdonjogának megváltoztatásával a következő parancs futtatásával:
$ sudo chown root:docker / volt / fuss / dokkoló.zokni
Ezután vegye át a saját könyvtárában lévő rejtett Docker-könyvtár tulajdonjogát a következő paranccsal:
Végül rendelje hozzá az olvasási és írási jogosultságokkal rendelkező csoportot a könyvtárhoz az alábbiak szerint:
A megadott metódusoknak elegendő engedélyt kell beállítaniuk az alapvető Docker-fájlok és -könyvtárak számára.
Következtetés
Ebben az oktatóanyagban megtanultuk, hogyan használhatjuk a négy fő módszert a Docker „engedély megtagadva” hiba megoldására a Docker-parancsok meghívásakor.