Popravek: Ne morem se povezati z Docker Daemonom



Preizkusite Naš Instrument Za Odpravo Težav

Morda boste zelo zmedeni, če vam terminal Linux prikaže napako »Ne morem se povezati z demonom Dockerja«, ker se verjetnost demona Docker več kot verjetno že izvaja, ko to vidite. Čeprav boste želeli zagotoviti, da je, boste verjetno zmedeni, ko boste ugotovili, da ta napaka sploh ni povezana s tem, da storitev ni bila zagnana. Večinoma se vrže na uporabnike, ki se niso dodali v skupino Docker.



Docker izda ločeno uporabniško skupino v sistemih Linux in tisti, ki imajo uporabniške račune, ki niso dodani vanj, se ne bodo mogli povezati z njo. Upoštevajte, da je dodajanje uporabniškega računa v skupino Docker funkcionalno korensko enakovredno, saj se demon vedno izvaja kot korenski uporabnik. To bi lahko pričakovali v sistemu z enim uporabnikom Ubuntu Server, vendar bo to zagotovo treba imeti v mislih za tiste, ki uporabljajo Docker v Archu, Fedori ali Debianu.



1. način: Preverjanje stanja storitve Docker

Čeprav je skoraj zagotovo, boste morali preveriti, ali se storitev Docker trenutno izvaja. V terminalskem oknu zaženite systemctl status docker.service kot običajen uporabnik. Morali bi dobiti nekaj informacij o tem, kateri številki PID je dodeljen demon Docker. Če tega ne storite, boste morali znova zagnati storitev.



Če ste ga znova zagnali, poskusite storiti vse, kar je povzročilo napako »Ne morem se povezati z demonom Dockerja«. Če zdaj deluje, preprosto niste imeli zagnane storitve in vam v resnici ni treba skrbeti zaradi česar koli drugega, razen zaradi tega, ker ni deloval. Na žalost to v večini primerov ne deluje, zato boste morali v teh situacijah nadaljevati.

2. način: dodajanje uporabnikov v skupino Docker

Teči informacije o dockerju iz ukazne vrstice, ki vam ponavadi znova prikaže napako »ne morem se povezati z demonom Dockerja«.

V tem primeru boste morali zagnati sudo groupadd docker; sudo usermod -aG docker $ USER da se dodate v pravilno skupino. Če bi to povzročilo napako, ker nimate usermod, lahko spremenite ukaz, da se zažene kot sudo groupadd docker; sudo gpasswd -doker USER USER , vendar to na splošno ne bi smelo biti problem, ker večina distribucij Linuxa komercialnega razreda deluje z istim naborom orodij. V vsakem primeru teči newgrp docker tako se lahko prijavite v novo skupino dockerjev, če tega še niste storili.



Upoštevajte, da bo to vedno dodalo uporabnika, v katerega ste trenutno prijavljeni, kar ne bi smelo predstavljati prevelike težave v sistemih večine ljudi, ki nimajo več računov razen enega uporabnika in korenskega računa. Ker imate za zdaj vpisan skrbniški dostop, zaženite sudo chgrp docker / usr / bin docker; sudo chgrp docker /var/run/docker.sock popraviti dovoljenja vtičnice in ukaza docker. Datoteka vtičnice običajno pripada samo korenskemu uporabniku, tako da bo to popravilo.

Po zagonu ne bi smeli imeti težav, ker zdaj pripada isti skupini, ki ste jo ustvarili v prejšnjem ukazu. Boste želeli preizkusiti, da zagotovite, da priklopna enota deluje brez sudo, zato vnesite docker run hello-world kot običajni uporabnik, da se prepričate, da ne prihaja do drugih napak.

V tem trenutku bo zelo malo uporabnikov še vedno prejemalo kakršno koli sporočilo o napaki. Na tej točki bi bilo treba popraviti večino stvari, vendar če imate še vedno težave, se boste morda želeli popolnoma odjaviti. Poskusite odpreti drugo okno emulatorja terminala, če pa to ne deluje, včasih pomaga, da se sistem popolnoma zaustavi, če je to sploh izvedljivo

3. metoda: Uporaba ACL-jev za spreminjanje metapodatkov Dockerja

Če ne želite pripadati skupini, ki vam je všeč korenski uporabnik, lahko datoteko vtičnice nastavite tako, da deluje le z določenimi dovoljenji. Postopek gpasswd lahko prezrete, če želite to narediti na ta način. Moral bi skenirati datotečni sistem za različne vnose ACL v breme za tiste, ki opravljajo varnostno presojo, vendar vam preprečuje, da bi morali v celoti uporabljati skupino dockerjev.

Če želite to storiti na ta način, lahko tečete sudo setfacl -m uporabnik: ime: rw /var/run/docker.sock medtem ko uporabnika in ime nadomešča z ustreznimi oznakami. To daje dovoljenje za dostop do vtičnice Docker na /var/run/docker.sock, ki bi morala delovati s strežnikom Debian in Ubuntu.

3 minute branja