Fix: Kan ikke oprette forbindelse til Docker-dæmonen



Prøv Vores Instrument Til At Fjerne Problemer

Du kan være meget forvirret, hvis en Linux-terminal kaster fejlen 'kan ikke oprette forbindelse til Docker-dæmonen', fordi Docker-dæmonen mere end sandsynligt kører allerede, når du ser det. Mens du vil sikre dig, at det er tilfældet, vil du sandsynligvis blive forvirret, når du finder ud af, at denne fejl ikke engang har at gøre med, at tjenesten ikke startes. Det smides for det meste på brugere, der ikke har føjet sig til Docker-gruppen.



Docker udsteder en separat brugergruppe på Linux-systemer, og dem, der har brugerkonti, der ikke føjes til den, kan ikke oprette forbindelse til den. Husk, at tilføjelse af en brugerkonto til Docker-gruppen er funktionelt rootækvivalent, da dæmonen altid kører som rodbruger. Dette kan forventes på et enkeltbruger Ubuntu Server-system, men det vil bestemt være noget at huske på for dem, der kører Docker på Arch, Fedora eller Debian.



Metode 1: Kontrol af Docker-servicestatus

Mens det næsten helt sikkert er det, skal du kontrollere, om Docker-tjenesten i øjeblikket kører. Kør ved et terminalvindue systemctl status docker.service som en normal bruger. Du bør få nogle oplysninger om, hvilket PID-nummer Docker's dæmon blev tildelt. Hvis du ikke gør det, skal du genstarte tjenesten.



Skulle du have genstartet det, så prøv at gøre hvad det var, der kastede fejlen 'kan ikke oprette forbindelse til Docker-dæmonen'. Hvis det nu virker, så har du bare ikke haft tjenesten i gang og behøver ikke rigtig bekymre dig om noget andet udover grunden til, at den ikke kørte. Desværre fungerer dette ikke i de fleste tilfælde, så du bliver nødt til at komme videre i disse situationer.

Metode 2: Tilføjelse af brugere til Docker-gruppen

Løb docker info fra kommandolinjen, som normalt giver dig fejlen 'kan ikke oprette forbindelse til Docker-dæmonen' igen.

Hvis dette er tilfældet, skal du køre sudo groupadd docker; sudo usermod -aG docker $ BRUGER at tilføje dig selv til den rette gruppe. Skulle dette give en fejl, fordi du ikke har usermod, kan du ændre kommandoen for at køre som sudo groupadd docker; sudo gpasswd -a $ USER docker , men dette bør generelt ikke være et problem, fordi de fleste Linux-distributioner i kommerciel kvalitet arbejder med det samme sæt værktøjer. Under alle omstændigheder skal du løbe newgrp docker så du kan blive logget ind i den nye docker-gruppe, hvis du ikke allerede er det.



Husk, at dette altid tilføjer den bruger, du i øjeblikket er logget ind på, hvilket ikke burde være for meget af et problem på de fleste menneskers systemer, der ikke har flere konti ud over den ene bruger og rodkontoen. Da du har administreret adgang, der er indtastet indtil videre, skal du køre sudo chgrp docker / usr / bin docker; sudo chgrp docker /var/run/docker.sock for at rette tilladelserne til docker-stikket og kommandoen. Socket-filen tilhører normalt kun rodbrugeren, så dette vil rette det.

Efter at have kørt det, skal du ikke have nogen problemer, fordi det nu tilhører den samme gruppe, som du havde oprettet i den forrige kommando. Du vil gerne teste for at sikre, at docker kører uden sudo, men skriv så docker køre hej-verden som en almindelig bruger for at sikre, at du ikke får andre fejl.

På dette tidspunkt vil meget få brugere stadig modtage nogen form for fejlmeddelelse. De fleste ting skal rettes på dette tidspunkt, men hvis du stadig har problemer, kan du måske logge ud helt. Prøv at åbne et andet terminalemulatorvindue, men hvis dette ikke virker, hjælper det nogle gange med at bringe systemet ned for en komplet genstart, hvis det overhovedet er muligt

Metode 3: Brug af ACL'er til at ændre Docker-metadata

Hvis du ikke vil høre til en gruppe, der gør dig til en rodbruger, kan du indstille socket-filen til kun at fungere med visse tilladelser. Du kan ignorere gpasswd-processen, hvis du foretrækker at gøre det på denne måde. At skulle scanne filsystemet for forskellige ACL-poster i en byrde for dem, der foretager en sikkerhedsrevision, men det forhindrer dig i at skulle bruge docker-gruppen helt.

Hvis du vil gøre det på denne måde, kan du løbe sudo setfacl -m bruger: navn: rw /var/run/docker.sock mens du erstatter bruger og navn med de relevante etiketter. Dette giver tilladelse til at få adgang til Docker-soklen på /var/run/docker.sock, som skal fungere med Debian og Ubuntu Server.

3 minutter læst