Kun työskentelet Dockerin kanssa, saatat kohdata tapauksen, jossa komento palauttaa 'lupa estetty' -virheen. Tämä virhe ilmenee, kun yrität suorittaa Dockerin ilman riittäviä oikeuksia komentoon.
Docker tarvitsee oletusarvoisesti sudo- tai root-oikeudet suorittaakseen liittyvät komentot. Minkä tahansa komennon suorittaminen ilman vaadittuja oikeuksia johtaa surullisen 'lupa estetty' -virheeseen.
Tämä opetusohjelma sisältää erilaisia menetelmiä ja tekniikoita, joilla voit korjata 'lupa estetty' -virheen, kun yrität suorittaa Docker-komentoja.
Muista, että se ei kata Dockerin suorittamista juurettomassa ympäristössä. Voit tarkistaa rootless Docker -oppaamme seuraavasta resurssista:
Vaatimukset:
Kuten arvata saattaa, tämän postauksen seuraaminen edellyttää, että sinulla on seuraavat tiedot:
- Docker-versio 20.0 tai uudempi
- Isäntäjärjestelmän sudo- tai root-oikeudet
Mikä on 'Lupa evätty' -virhe?
Kun Dockerissa ilmenee 'lupa estetty' -virhe, se tarkoittaa, että isäntäjärjestelmä ei voi muodostaa yhteyttä Docker-daemonin kanssa riittämättömien oikeuksien vuoksi. Esimerkki on esitetty seuraavassa:
$ telakkajuoksu -se varattu laatikko sh
Jos kohtaat annetun virheen, voit käyttää joitain seuraavista tavoista oppiaksesi korjaamaan sen.
Tapa 1: Suorita Docker juurina
Ensimmäinen ja ilmeisin tapa ratkaista Dockerin 'lupa estetty' -virhe on 'sudo' -komennon käyttäminen. Jos sinulla on sudo-oikeudet, voit korjata sen suorittamalla siihen liittyvän komennon käyttämällä sudoa.
Esimerkiksi korjataksesi mainitun virheen, voimme liittää komennon eteen sudo seuraavasti:
$ sudo telakkajuoksu -se varattu laatikko sh
Kuten näet, Docker vetää vaaditut kuvat onnistuneesti ja suorittaa säilön.
Tapa 2: Käynnistä Docker-Daemon uudelleen
Joskus voit saada 'lupa estetty' -virheen Dockerissa, jos moottorissa on ongelma. Sen sijaan, että jäljittäisit ongelman manuaalisesti, voit yrittää käynnistää Docker-daemonin nopeasti uudelleen ladataksesi sen uudelleen.
Aloita tarkistamalla Docker-daemonin tila seuraavasti:
$ docker systemctl status docker
Kun olet varmistanut, että Docker on käynnissä, käynnistä palvelu uudelleen seuraavalla komennolla:
Tämän pitäisi käynnistää Docker-daemon ja korjata mahdolliset ongelmat, jotka saattavat estää sinua suorittamasta mitään komentoja.
Tapa 3: Ota käyttöön ei-root-käyttäjä
Toinen tapa, jolla voit ratkaista Dockerin 'lupa estetty' -virheen, on sallia muiden kuin pääkäyttäjien suorittaa Docker-komentoja.
Ota tämä menetelmä käyttöön kirjautumalla isäntäjärjestelmään ja luomalla uusi ryhmä Dockerille.
$ sudo ryhmälisää -f satamatyöläinen
Lisää seuraavaksi kaikki haluamasi käyttäjät Docker-ryhmään seuraavasti:
Edellisen komennon pitäisi lisätä linuxhint-käyttäjä Docker-ryhmään.
Ota lopuksi ryhmämuutokset käyttöön nykyiseen istuntoon käyttämällä seuraavaa komentoa:
$ newgrp-telakka
Kun olet valmis, voit suorittaa minkä tahansa Docker-komennon käyttämättä sudoa millekään Docker-ryhmän käyttäjälle.
Tapa 4: Määritä Dockerin käyttöoikeudet uudelleen
Seuraava tapa, jota voit käyttää, on Docker-sockettien käyttöoikeuksien palauttaminen. Aloita muuttamalla Docker Unix -socketin omistajuutta suorittamalla seuraava komento:
$ sudo chown root:docker / oli / juosta / telakka.sukka
Ota seuraavaksi kotihakemistosi piilotettu Docker-hakemisto omistukseen käyttämällä seuraavaa komentoa:
Määritä lopuksi ryhmä, jolla on luku- ja kirjoitusoikeudet hakemistoon seuraavasti:
Tarjottujen menetelmien tulee asettaa riittävät oikeudet tärkeille Docker-tiedostoille ja -hakemistoille.
Johtopäätös
Tässä opetusohjelmassa opimme, kuinka voimme käyttää neljää päämenetelmää Dockerin 'lupa estetty' -virheen ratkaisemiseen Docker-komentoa vedettäessä.