Ayusin: Hindi Makakonekta sa Docker Daemon



Subukan Ang Aming Instrumento Para Sa Pagtanggal Ng Mga Problema

Maaaring malito ka kung ang isang terminal ng Linux ay nagtatapon ng isang error na 'hindi makakonekta sa Docker daemon' sa iyo, dahil higit sa malamang ang Docker daemon ay tumatakbo na kapag nakita mo iyon. Habang gugustuhin mong tiyakin na ito ay, marahil ay malito ka kapag nalaman mong ang error na ito ay hindi kahit na may kinalaman sa hindi nagsisimulang serbisyo. Karamihan ay itinapon ito sa mga gumagamit na hindi naidagdag ang kanilang sarili sa pangkat ng Docker.



Nag-isyu ang Docker ng magkakahiwalay na pangkat ng gumagamit sa mga system ng Linux, at ang mga may mga account ng gumagamit na hindi naidagdag dito ay hindi makakonekta dito. Tandaan na ang pagdaragdag ng isang account ng gumagamit sa pangkat ng Docker ay functionally root katumbas dahil ang daemon ay palaging tumatakbo bilang root na gumagamit. Maaaring asahan ito sa isang solong-gumagamit na sistema ng Ubuntu Server, ngunit tiyak na ito ay isang bagay na dapat tandaan para sa mga nagpapatakbo ng Docker sa Arch, Fedora o Debian.



Paraan 1: Sinusuri ang Katayuan ng Serbisyo ng Docker

Habang halos tiyak na ito, kakailanganin mong suriin kung ang serbisyo ng Docker ay kasalukuyang tumatakbo. Sa isang window ng terminal, tumakbo systemctl status docker.service bilang isang normal na gumagamit. Dapat kang makakuha ng ilang impormasyon tungkol sa aling numero ng PID na naatasan ang daemon ni Docker. Kung hindi mo ginawa, kailangan mong i-restart ang serbisyo.



Kung dapat mong i-restart ito, subukang gawin kung ano man ito na nagtapon sa iyo ng error na 'hindi makakonekta sa Docker daemon'. Kung gumagana ito ngayon, kung gayon wala kang serbisyo na tumatakbo at hindi mo talaga kailangang magalala tungkol sa anupaman maliban sa kadahilanang hindi ito tumatakbo. Sa kasamaang palad, hindi ito gagana sa karamihan ng mga kaso kaya kakailanganin mong magpatuloy sa mga sitwasyong iyon.

Paraan 2: Pagdaragdag ng Mga Gumagamit sa Docker Group

Takbo impormasyon ng docker mula sa linya ng utos, na kung saan ay bibigyan ka ng error na 'hindi makakonekta sa Docker daemon' muli.

Kung ito ang kaso, kailangan mong tumakbo sudo groupadd docker; sudo usermod -aG docker $ USER upang idagdag ang iyong sarili sa tamang pangkat. Kung magbibigay ito ng isang error dahil wala kang usermod, maaari mong baguhin ang utos na tumakbo bilang sudo groupadd docker; sudo gpasswd - isang $ USER docker , ngunit sa pangkalahatan ito ay hindi dapat maging isang isyu dahil ang karamihan sa mga pamamahagi ng grade na Linux ay gumagana sa parehong hanay ng mga tool. Sa anumang kaso, tumakbo newgrp docker upang maaari kang mag-log in sa bagong pangkat ng docker kung hindi mo pa ito nagagawa.



Tandaan na palaging idaragdag nito ang gumagamit na kasalukuyang naka-log in, na hindi dapat maging labis na problema sa karamihan ng mga system ng mga tao na walang maraming mga account na lampas sa isang gumagamit at root account. Dahil mayroon kang access sa administratibong pag-key sa pansamantala, patakbuhin sudo chgrp docker / usr / bin docker; sudo chgrp docker /var/run/docker.sock upang ayusin ang mga pahintulot sa docker socket at utos. Karaniwan, ang socket file ay pagmamay-ari lamang ng root user kaya't aayusin ito.

Matapos itong patakbuhin, hindi ka dapat magkaroon ng anumang problema dahil kabilang na ito sa parehong pangkat na nilikha mo sa nakaraang utos. Nais mong subukan upang matiyak na ang docker ay tumatakbo nang walang sudo, gayunpaman, uri docker magpatakbo ng hello-world bilang isang regular na gumagamit upang matiyak na hindi ka nakakakuha ng anumang iba pang mga error.

Sa puntong ito, napakakaunting mga gumagamit ang makakatanggap pa rin ng anumang uri ng mensahe ng error. Karamihan sa mga bagay ay dapat na naitama sa puntong ito, ngunit kung nagkakaroon ka pa rin ng mga problema baka gusto mong tuluyang mag-log out. Subukang buksan ang isa pang window ng emulator ng terminal, ngunit kung hindi ito gumana minsan ay nakakatulong upang mapababa ang system para sa isang kumpletong pag-restart kung posible ito

Paraan 3: Paggamit ng mga ACL upang Baguhin ang Docker Metadata

Kung hindi mo nais na mapabilang sa isang pangkat na ginagawang gusto mo ng isang root user, maaari mong itakda ang socket file upang gumana na may ilang mga pahintulot lamang. Maaari mong balewalain ang proseso ng gpasswd kung gugustuhin mong gawin ito sa ganitong paraan. Ang pagkakaroon upang i-scan ang file system para sa iba't ibang mga entry ng ACL sa isang pasanin para sa mga gumagawa ng isang audit sa seguridad, ngunit pinipigilan ka nito mula sa kinakailangang paggamit ng docker group.

Kung nais mong gawin ito sa ganitong paraan, maaari kang tumakbo sudo setfacl -m user: pangalan: rw /var/run/docker.sock habang pinapalitan ang gumagamit at pangalan ng mga naaangkop na label. Nagbibigay ito ng pahintulot na i-access ang Docker socket sa /var/run/docker.sock, na dapat gumana sa Debian at Ubuntu Server.

Basahin ang 3 minuto