Error na 'Tinanggihan ang Pahintulot' ng Docker

Error Na Tinanggihan Ang Pahintulot Ng Docker



Kapag nagtatrabaho sa Docker, maaari kang makatagpo ng isang pagkakataon kung saan ang command ay nagbabalik ng error na 'tinanggihan ang pahintulot'. Ang error na ito ay nangyayari kapag sinubukan mong patakbuhin ang Docker nang walang sapat na pahintulot para sa command.

Ang Docker ay nangangailangan ng sudo o root na mga pahintulot upang maisagawa ang nauugnay na mga utos bilang default. Ang pagtatangkang magpatakbo ng anumang utos nang walang kinakailangang mga pribilehiyo ay humahantong sa kasumpa-sumpa na error na 'tinanggihan ang pahintulot.'







Ang tutorial na ito ay nagbibigay ng iba't ibang mga pamamaraan at diskarte na magagamit mo upang ayusin ang error na 'tinanggihan ang pahintulot' kapag sinusubukang patakbuhin ang mga utos ng Docker.



Tandaan na hindi nito saklaw ang proseso ng pagpapatakbo ng Docker sa isang walang ugat na kapaligiran. Maaari mong suriin ang aming tutorial sa walang ugat na Docker sa sumusunod na mapagkukunan:



Mga kinakailangan:

Tulad ng maaari mong hulaan, upang masundan ang post na ito, kailangan mong magkaroon ng sumusunod:





    1. Docker bersyon 20.0 at mas mataas
    2. Sudo o root na mga pahintulot sa host system

Ano ang Error na 'Tinanggihan ang Pahintulot'?

Kapag ang error na 'tinanggihan ang pahintulot' ay nangyari sa Docker, nangangahulugan ito na ang host system ay hindi makakapagtatag ng komunikasyon sa Docker daemon dahil sa hindi sapat na mga pahintulot. Ang isang halimbawa ay ipinapakita sa sumusunod:

$ tumakbo sa pantalan -ito busybox sh



Kung nakatagpo ka ng ibinigay na error, maaari mong gamitin ang ilan sa mga sumusunod na paraan upang matutunan kung paano ito ayusin.



Paraan 1: Patakbuhin ang Docker bilang Root

Ang una at pinaka-halatang paraan ng paglutas ng error na 'tinanggihan ang pahintulot' ng Docker ay ang paggamit ng 'sudo' na utos. Kung mayroon kang mga pribilehiyo ng sudo, maaari mo itong ayusin sa pamamagitan ng pagpapatakbo ng nauugnay na command gamit ang sudo.

Halimbawa, upang ayusin ang nasabing error, maaari naming idagdag ang sudo bago ang command tulad ng sumusunod:

$ sudo tumakbo sa pantalan -ito busybox sh



Tulad ng nakikita mo, matagumpay na nakuha ng Docker ang mga kinakailangang larawan at pinapatakbo ang lalagyan.

Paraan 2: I-restart ang Docker Daemon

Minsan, maaari mong makuha ang error na 'tinanggihan ang pahintulot' sa Docker kung may problema ang makina. Sa halip na manu-manong subaybayan ang isyu, maaari mong subukan ang isang mabilis na pag-restart ng Docker daemon upang i-reload ito.

Magsimula sa pamamagitan ng pagsuri sa katayuan ng Docker daemon tulad ng sumusunod:

$ docker systemctl status docker



Kapag natiyak mo na ang Docker ay tumatakbo, i-restart ang serbisyo gamit ang sumusunod na command:

$ sudo systemctl i-restart ang docker


Dapat nitong i-boot ang Docker daemon at ayusin ang anumang potensyal na isyu na maaaring pumipigil sa iyo sa pagpapatakbo ng anumang command.

Paraan 3: Paganahin ang Non-Root User

Ang isa pang paraan na magagamit mo upang malutas ang error na 'tinanggihan ang pahintulot' sa Docker ay ang pagpapahintulot sa mga hindi root na user na isagawa ang mga utos ng Docker.

Upang paganahin ang pamamaraang ito, mag-log in sa host system at lumikha ng bagong grupo para sa Docker.

$ sudo groupadd -f docker


Susunod, magdagdag ng sinumang user na nais mo sa pangkat ng Docker tulad ng sumusunod:

$ sudo usermod -aG docker linuxhint


Dapat idagdag ng nakaraang command ang linuxhint user sa Docker group.

Panghuli, ilapat ang mga pagbabago ng grupo sa kasalukuyang session gamit ang sumusunod na command:

$ newgrp docker


Kapag nakumpleto na, maaari kang magpatakbo ng anumang utos ng Docker nang hindi gumagamit ng sudo para sa sinumang gumagamit sa pangkat ng Docker.

Paraan 4: Muling i-configure ang Mga Pahintulot sa Docker

Ang susunod na paraan na magagamit mo ay ang pag-reset ng mga pahintulot para sa mga socket ng Docker. Magsimula sa pamamagitan ng pagbabago ng pagmamay-ari ng Docker Unix socket sa pamamagitan ng pagpapatakbo ng sumusunod na command:

$ sudo chown ugat: docker / ay / tumakbo / docker.medyas


Susunod, kunin ang pagmamay-ari ng nakatagong direktoryo ng Docker sa iyong direktoryo ng bahay gamit ang utos tulad ng sumusunod:

$ sudo chown -R ' $USER ' : ' $USER ' $HOME / .docker


Panghuli, italaga ang pangkat na may mga pahintulot sa pagbasa at pagsulat sa direktoryo tulad ng sumusunod:

$ sudo chmod -R g+rw ' $HOME /.docker'


Ang mga ibinigay na pamamaraan ay dapat magtakda ng sapat na mga pahintulot para sa mahahalagang Docker file at direktoryo.

Konklusyon

Sa tutorial na ito, natutunan namin kung paano namin magagamit ang apat na pangunahing pamamaraan upang malutas ang error na 'tinanggihan ng pahintulot' ng Docker kapag nag-invoke ng utos ng Docker.