Korjaus: Ei voida muodostaa yhteyttä Docker Daemoniin



Kokeile Instrumenttia Ongelmien Poistamiseksi

Saatat olla hyvin hämmentynyt, jos Linux-pääte heittää sinulle 'ei voi muodostaa yhteyttä Docker-daemoniin' -virheen, koska Docker-demoni on todennäköisesti jo käynnissä, kun näet sen. Vaikka haluat varmistaa, että se on, olet todennäköisesti hämmentynyt, kun huomaat, että tämä virhe ei edes liity siihen, että palvelua ei käynnistetä. Se heitetään enimmäkseen käyttäjille, jotka eivät ole lisänneet itseään Docker-ryhmään.



Docker antaa erillisen käyttäjäryhmän Linux-järjestelmille, ja ne, joilla on käyttäjätilejä, joita ei ole lisätty siihen, eivät voi muodostaa yhteyttä siihen. Muista, että käyttäjätilin lisääminen Docker-ryhmään on toiminnallisesti juuri vastaava, koska daemon on aina käynnissä pääkäyttäjänä. Tätä voidaan odottaa yhden käyttäjän Ubuntu Server -järjestelmässä, mutta se on varmasti jotain, joka on pidettävä mielessä niille, jotka käyttävät Dockeria Archissa, Fedorassa tai Debianissa.



Tapa 1: Docker-palvelun tilan tarkistaminen

Vaikka se on melkein varmasti, sinun on tarkistettava, onko Docker-palvelu tällä hetkellä käynnissä. Suorita pääteikkunassa systemctl-tila docker.service normaalina käyttäjänä. Sinun pitäisi saada tietoja siitä, mikä PID-numero Dockerin daemonille määritettiin. Jos et, sinun on käynnistettävä palvelu uudelleen.



Jos olet aloittanut sen uudelleen, yritä tehdä mikä tahansa, mikä heitti sinulle virheen 'ei voi muodostaa yhteyttä Docker-daemoniin'. Jos se nyt toimii, palvelua ei juuri ollut käynnissä, eikä sinun tarvitse huolehtia mistään muusta kuin syystä, jonka vuoksi se ei ollut käynnissä. Valitettavasti tämä ei toimi useimmissa tapauksissa, joten sinun on edettävä näissä tilanteissa.

Tapa 2: Käyttäjien lisääminen Docker-ryhmään

Juosta telakointitiedot komentoriviltä, ​​joka tavallisesti antaa jälleen 'ei voi muodostaa yhteyttä Docker-daemoniin' -virheen.

Jos näin on, sinun on suoritettava sudo groupadd-telakointiasema; sudo usermod -aG-telakka $ USER lisätäksesi itsesi oikeaan ryhmään. Jos tämä antaa virheen, koska sinulla ei ole käyttöjärjestelmää, voit muokata komentoa toimimaan sudo groupadd-telakointiasema; sudo gpasswd -a $ USER -telakointiasema , mutta tämän ei yleensä pitäisi olla ongelma, koska useimmat kaupallisen tason Linux-jakelut toimivat samoilla työkaluilla. Joka tapauksessa juosta newgrp-telakka joten voit kirjautua uuteen telakointiryhmään, jos et vielä ole.



Muista, että tämä lisää aina käyttäjän, jolla olet tällä hetkellä kirjautuneena, mikä ei saisi olla liikaa ongelmaa useimpien ihmisten järjestelmissä, joilla ei ole useita tilejä yhden käyttäjän ja juuritilin lisäksi. Koska sinulla on toistaiseksi näppäilty järjestelmänvalvojan käyttöoikeudet, suorita sudo chgrp -telakointiasema / usr / bin-telakointiasema; sudo chgrp -telakointiasema /var/run/docker.sock korjata telakointiaseman ja komennon oikeudet. Yleensä socket-tiedosto kuuluu vain pääkäyttäjälle, joten se korjaa sen.

Kun olet suorittanut sen, sinulla ei pitäisi olla mitään ongelmia, koska se kuuluu nyt samaan ryhmään, jonka olet luonut edellisessä komennossa. Haluat testata varmistaaksesi, että telakointiasema toimii ilman sudoa, joten kirjoita telakka ajaa hei-maailma tavallisena käyttäjänä varmistaaksesi, ettet saa muita virheitä.

Tässä vaiheessa vain harvat käyttäjät saavat edelleen minkäänlaista virheilmoitusta. Suurin osa asioista on korjattava tässä vaiheessa, mutta jos sinulla on edelleen ongelmia, haluat ehkä kirjautua ulos. Yritä avata toinen pääteemulaattori-ikkuna, mutta jos tämä ei toimi, se saattaa joskus auttaa kaatamaan järjestelmän täydelliseen uudelleenkäynnistykseen, jos se on lainkaan mahdollista

Tapa 3: ACL: ien käyttäminen Docker-metatietojen muokkaamiseen

Jos et halua kuulua ryhmään, joka tekee sinusta pääkäyttäjän, voit asettaa socket-tiedoston toimimaan vain tietyillä käyttöoikeuksilla. Voit ohittaa gpasswd-prosessin, jos haluat tehdä sen tällä tavalla. Sinun on skannattava tiedostojärjestelmä eri ACL-merkintöjen varalta turvatarkastuksia tekeville, mutta se estää sinua käyttämästä telakointiryhmää kokonaan.

Jos haluat tehdä sen tällä tavalla, voit juosta sudo setfacl -m käyttäjä: nimi: rw /var/run/docker.sock samalla kun käyttäjä ja nimi korvataan asianmukaisilla tarroilla. Tämä antaa oikeuden käyttää Docker-liitäntää osoitteessa /var/run/docker.sock, jonka pitäisi toimia Debianin ja Ubuntu Serverin kanssa.

3 minuuttia luettu