Kan ikke oprette forbindelse til Docker-dæmonen på 'unix: ///var/run/docker.sock'
Docker bliver mere og mere populær med sin evne til nemt at oprette, implementere og køre applikationer ved hjælp af containere. Containere tillader udviklere at pakke en applikation med alle dens biblioteker og afhængigheder, inden de implementeres som en hel pakke. Installation Docker på Linux er relativt let. Alt hvad du skal gøre er at køre et par kommandoer i terminalen, og du er god at gå.
Dette er dog muligvis ikke det samme for alle brugere, selv efter en vellykket installation. En af de mest almindelige fejl er:Kan ikke oprette forbindelse til Docker-dæmonen på (unix: ///var/run/docker.sock. Kører docker-dæmonen?) Denne fejl kan opstå, når du kører forskellige docker-kommandoer som docker-kørsel, dockerinfo, docker-pull, docker-stop osv.
Hvad forårsager fejlen: Kan ikke oprette forbindelse til Docker-dæmonen?
Efter at have modtaget adskillige udvikleres klager besluttede vi at dykke ind og komme med effektive løsninger. Nogle af grundene, der udløser denne fejl, inkluderer:
- Docker-dæmonen er det ikkekører.
- Docker gør det ikkelukke ned rent.
- Mangel afrodprivilegier for at starte dockertjenesten.
Nu hvor du har en grundlæggende forståelse af problemårsagen, skal vi se på de forskellige løsninger, der er tilgængelige for dig.
Løsning 1: Start Docker-tjenesten med systemctl
Hvis du lige har afsluttet en Dockers nye installation på Ubuntu eller genstartet din pc, er der stor sandsynlighed for, atDocker-service erkører ikke. Docker-dæmon (dockerd) er systemtjenesten til docker. Denne tjeneste håndterer forskellige Docker-objekter som billeder, containere, netværk og diskenheder og lytter til Docker API-anmodninger.
Systemctl-kommandoen erstatter det gamle SysV init-system, og detadministrerer systemd-tjenester kører på Linux-systemer. Hvis du ikke har systemctl i dit system, skal du ikke bekymre dig; brugservice kommando som beskrevet nedenfor.
Bemærk: Denne metode fungerer kun for brugere, der har installeret Docker med APT-pakkehåndteringen. Hvis du installerede Docker viaSNAP, henvise tilLøsning 5under.
- Åbn terminalen og udfør den første kommando -afmaske docker.
sudo systemctl afmaske docker
Hvis vi forsøger at starte dockertjeneste, når docker er maskeret, står vi muligvis over for fejlen 'Kunne ikke starte docker.service: Enheden er maskeret.' Maske kan betragtes som en mere robust version af deaktivering. Når en enhedsfil maskeres, er enheden linket til 'dev / null.' Du kan liste tilstanden for alle enhedsfiler med kommandoen - '$ systemctl liste-enhed-filer‘
2. Når dockerenheden er afmaskeret, vi kan start dockerdæmon med systemctl-kommandoen. Det docker dæmon administrerer dockerobjekter som Images, Containers og Docker API-anmodninger. Udfør kommandoen nedenfor på kommandolinjen.
systemctl start docker
3. Til verificere om dockertjenesten er aktiv og kører. Vi brugersystemctl status kommando, der viser den aktuelle status for den pågældende tjeneste. Udfør kommandoen nedenfor på din terminal.
systemctl status docker
Fra ovenstående billede kan vi se detdocker er aktiv og kører.
Løsning 2: Rens en 'Mislykket Docker Pull' og start Docker-tjeneste
Der er tilfælde, hvor du uventet lukker Docker, mens du trækker i en container. Sådanne situationer vil skjule docker.service ogdocker. stikkontaktfiler. Docker.socket er en fil, der findes på '/var/run/docker.sock' og bruges til at kommunikere med Docker-dæmonen. Det bliver vi nødt tilafmaske to-enhedens filer - docker .service og docker.daemon førfortsætter tilstart docker.
- StartTerminal og udførekommandoer under:
systemctl unmask docker.service systemctl unmask docker.socket systemctl start docker.service
Hvis du stadig oplever fejlen selv efter udførelse af nedenstående kommandoer, bliver vi nødt til det slet filerne i Beholder mappe, før du starter Docker igen. Containerd var en funktion introduceret i Docker 1.11 og bruges til at styre Docker-billedets livscyklus.
2. Åbn Terminal, og udfør nedenstående kommandoer. Sørg for, at du kender rodadgangskode da vi har brug for forhøjede privilegier for at udføre kommandoerne.
sudo su service docker stop cd / var / run / docker / libcontainerd rm -rf containerd / * rm -f docker-containerd.pid service docker start
Løsning 3: Start Dockerd (Docker Daemon) Service
Dockerd er Docker-dæmonen, der lytter til Docker API'er og administrerer de forskellige Docker-objekter. Dockerd kan bruges som et alternativ til kommandoen '$ systemctl start docker'Som også bruges til at starte Docker-dæmonen.
- Åben Terminal og start dockerd ved at udføre kommandoen nedenfor:
sudo dockerd
Løsning 4: Start Docker med servicekommandoen
Hvis du bruger SysV init-system, så fungerer systemctl-kommandoen ikke for dig. Vi bliver nødt til at bruge servicekommando til start docker-dæmonen.
- starte Terminal og udføre kommandoerne nedenfor:
sudo service - status-all sudo service docker start
Løsning 5: Start Docker-tjenesten med Snap
Hvis du installerede Docker medSnap pakkehåndtering, skal du bruge snap-kommandoen til at styre docker-dæmonen.
Generelt administrerer Snap deres tjenester automatisk. I situationer som denne fejl kræver det imidlertid manuel indgriben. Nogle af de argumenter, du kan bruge med snap-kommandoen, inkluderer stop, start og genstart. I vores tilfælde bruger vi startparameteren.
- Åbn Terminal, og udfør nedenstående kommando tilstart Docker.
sudo snap start docker
2. Udfør kommandoen nedenfor til verificere om Docker-tjenesten blev startet.
sudo snap-tjenester
Det vil liste alle kører snap-tjenester.
Hvis ovenstående kommandoer ikke virker for dig, så prøv tilslutning af docker: hjemmestik da den ikke er automatisk forbundet som standard. Når du er færdig, Start det Docker-service.
3. Start terminalen, og kør nedenstående kommandoer:
sudo snap tilslut docker: hjem: hjem sudo snap start docker
Løsning 6: Start Docker til brugere uden root Pprivilegier
Fejlen kan også opstå pga mangel på forhøjede privilegier og brugeren har ikke adgang til 'unix: ///var/run/docker.sock.' Heldigvis er der en løsning. Vi eksporterer Docker Host-variablen til localhost via port 2375.
- Åbn terminalen, og kør kommandoen nedenfor:
eksporter DOCKER_HOST = tcp: // localhost: 2375
Løsning 7: Geninstaller Docker
Hvis ovenstående løsninger ikke løser fejlen, er der stor sandsynlighed for, at du muligvis har installationsfejl. For at installere Docker korrekt i dit Linux-system skal du følge trinene fra den officielle Docker-webside.