Rješenje: Ne može se povezati s Docker Daemonom



Isprobajte Naš Instrument Za Uklanjanje Problema

Mogli biste se jako zbuniti ako vam Linux terminal dobavi pogrešku 'ne može se povezati s Docker demonom', jer je više nego vjerojatno da se Docker demon već pokreće kad to vidite. Iako ćete se htjeti uvjeriti da jest, vjerojatno ćete biti zbunjeni kad saznate da ta pogreška čak nema veze s time što usluga nije pokrenuta. Uglavnom se baca na korisnike koji se nisu dodali u grupu Docker.



Docker izdaje zasebnu korisničku grupu na Linux sustavima i oni koji imaju korisničke račune koji joj nisu dodani neće se moći povezati s njom. Imajte na umu da je dodavanje korisničkog računa u grupu Docker funkcionalno ekvivalent root, budući da se demon uvijek izvodi kao root korisnik. To se može očekivati ​​na jednokorisničkom sustavu Ubuntu Server, ali sigurno će to imati na umu oni koji pokreću Docker na Archu, Fedori ili Debianu.



Metoda 1: Provjera statusa usluge Docker

Iako je gotovo sigurno, morat ćete provjeriti radi li usluga Docker trenutno. Na prozoru terminala pokrenite systemctl status docker.service kao normalan korisnik. Trebali biste dobiti neke informacije o tome kojem je PID broju dodijeljen Docker-ov demon. Ako to ne učinite, morat ćete ponovo pokrenuti uslugu.



Ako ste ga ponovno pokrenuli, pokušajte učiniti sve što je dovelo do pogreške 'ne mogu se povezati s demonom Dockera'. Ako sada radi, jednostavno niste imali pokrenutu uslugu i zapravo se ne trebate brinuti ni zbog čega drugog osim zbog razloga što nije pokrenut. Nažalost, to u većini slučajeva ne uspije, pa ćete u tim situacijama trebati ići dalje.

Metoda 2: Dodavanje korisnika u grupu Docker

Trčanje informacije o dockeru iz naredbenog retka, koji će vam obično još jednom dati pogrešku 'ne mogu se povezati s Docker demonom'.

Ako je to slučaj, morat ćete pokrenuti sudo groupadd docker; sudo usermod -aG docker $ USER da se dodate u odgovarajuću grupu. Ako ovo dovede do pogreške jer nemate usermod, tada možete izmijeniti naredbu da se izvodi kao sudo groupadd docker; sudo gpasswd -doker USER USER , ali ovo općenito ne bi trebalo predstavljati problem jer većina Linux distribucija komercijalnog razreda radi s istim setom alata. U svakom slučaju, trči newgrp docker tako da se možete prijaviti u novu skupinu dockera ako već niste.



Imajte na umu da će to uvijek dodati korisnika s kojim ste trenutno prijavljeni, što ne bi trebao predstavljati preveliki problem na sustavima većine ljudi koji nemaju više računa osim jednog korisnika i korijenskog računa. Budući da za sada imate upisan administrativni pristup, pokrenite sudo chgrp docker / usr / bin docker; sudo chgrp docker /var/run/docker.sock da popravi dozvole na utičnici i naredbi dockera. Datoteka utičnice obično pripada samo root korisniku pa će to ispraviti.

Nakon pokretanja ne biste trebali imati problema jer sada pripada istoj grupi koju ste stvorili u prethodnoj naredbi. Morat ćete testirati kako biste osigurali da docker radi bez sudoa, pa upišite docker run hello-world kao redoviti korisnik kako biste bili sigurni da nećete dobiti druge pogreške.

U ovom će trenutku vrlo mali broj korisnika i dalje primati bilo kakvu poruku o pogrešci. Većinu bi stvari trebalo ispraviti u ovom trenutku, ali ako i dalje imate problema, možda biste se željeli potpuno odjaviti. Pokušajte otvoriti drugi prozor emulatora terminala, ali ako to ne uspije, ponekad pomogne zaustaviti sustav radi potpunog ponovnog pokretanja ako je to uopće izvedivo

3. metoda: Korištenje ACL-ova za izmjenu Docker metapodataka

Ako ne želite pripadati grupi koja vas čini korijenskim korisnikom, tada možete postaviti socket datoteku da radi samo s određenim dozvolama. Možete ignorirati postupak gpasswd ako biste to radije radili na ovaj način. Morate skenirati datotečni sustav za različite unose ACL-a na teret onima koji rade sigurnosnu provjeru, ali to vas sprječava da morate u potpunosti koristiti skupinu dockera.

Ako želite to učiniti na ovaj način, onda možete trčati sudo setfacl -m korisnik: ime: rw /var/run/docker.sock uz zamjenu korisnika i imena odgovarajućim oznakama. To daje odobrenje za pristup Docker utičnici na /var/run/docker.sock, koja bi trebala raditi s Debianom i Ubuntu poslužiteljem.

3 minute čitanja