Kan ikke koble til Docker Daemon på ‘unix: ///var/run/docker.sock’

Docker blir mer og mer populært med sin evne til å lage, distribuere og kjøre applikasjoner enkelt ved hjelp av containere. Beholdere tillater utviklere å pakke et program med alle dets biblioteker og avhengigheter før de distribueres som en hel pakke. Installasjon Docker på Linux er relativt enkelt. Alt du trenger å gjøre er å kjøre et par kommandoer i terminalen, og du er god å gå.

Dette er imidlertid ikke det samme for alle brukere, selv etter en vellykket installasjon. En av de vanligste feilene er:Kan ikke koble til Docker-demonen på (unix: ///var/run/docker.sock. Kjører docker-demonen?) Denne feilen kan oppstå når du kjører forskjellige dockerkommandoer som docker run, docker info, docker pull, docker stop, etc.

Hva forårsaker feilen: Kan ikke koble til Docker-demonen?

Etter å ha mottatt en rekke utvikleres klager, bestemte vi oss for å dykke inn og komme med effektive løsninger. Noen av årsakene som utløser denne feilen inkluderer:

  • Docker-demonen er ikke detløping.
  • Docker ikkeskru av rent.
  • Mangel avrotprivilegier for å starte dockertjenesten.

Nå som du har en grunnleggende forståelse av problemet, kan vi se på de ulike løsningene som er tilgjengelige for deg.

Løsning 1: Start Docker-tjenesten med systemctl

Hvis du nettopp har fullført en ny installasjon av Docker på Ubuntu eller startet PCen på nytt, er det stor sannsynlighet for atDocker-tjeneste erløper ikke. Docker-demon (dockerd) er systemtjenesten for docker. Denne tjenesten håndterer forskjellige Docker-objekter som bilder, containere, nettverk og volumer og lytter til Docker API-forespørsler.

Systemctl-kommandoen erstatter det gamle SysV init-systemet, og detadministrerer systemtjenester kjører på Linux-systemer. Hvis du ikke har systemctl i systemet ditt, ikke bekymre deg; brukeservice kommandoen som beskrevet nedenfor.

Merk: Denne metoden fungerer bare for brukere som installerte Docker med APT-pakkebehandling. Hvis du installerte Docker viaSNAP, referere tilLøsning 5under.

  1. Åpne terminalen og utfør den første kommandoen -avmaske docker.
sudo systemctl demaskere docker

Hvis vi prøver å starte dokkertjeneste når dokkeren er maskert, kan vi møte feilen «Kunne ikke starte docker.service: Enheten er maskert.» Maske kan betraktes som en mer robust versjon av deaktivering. Når en enhetsfil er maskert, er enheten koblet til ‘dev / null.’ Du kan liste tilstanden til alle enhetsfilene med kommandoen - ‘$ systemctl liste-enhetsfiler

2. Når dockerenheten er avslørt, vi kan start dockerendaemon med systemctl-kommandoen. De docker daemon administrerer dockerobjekter som Images, Containers og Docker API-forespørsler. Utfør kommandoen nedenfor på kommandolinjen.

systemctl start docker

3. Til bekrefte om dockertjenesten er aktiv og løper. Vi vil brukesystemctl status kommando, som viser gjeldende status for den aktuelle tjenesten. Utfør kommandoen nedenfor på terminalen din.

systemctl status docker

Fra bildet ovenfor kan vi se detdockeren er aktiv og kjører.

Løsning 2: Rengjør tjenesten ‘Mislykket Docker Pull’ og Start Docker

Det er tilfeller der du uventet kan lukke Docker mens du drar i en container. Slike situasjoner vil maskere docker.service ogdocker. stikkontaktfiler. Docker.socket er en fil som ligger på ‘/var/run/docker.sock’ og brukes til å kommunisere med Docker-demonen. Vi måavmaske to-enhetsfilene - docker .service og docker.daemon førfortsetter tilstart docker.

  1. StartTerminal og utførekommandoer under:
systemctl unmask docker.service systemctl unmask docker.socket systemctl start docker.service

Hvis du fortsatt opplever feilen selv etter at du har utført kommandoene nedenfor, må vi slett filene i Beholder katalogen før du starter Docker igjen. Containerd var en funksjon introdusert i Docker 1.11 og brukes til å administrere Docker-bilder livssyklus.

2. Åpne Terminal og utfør kommandoene nedenfor. Sørg for at du kjenner til rotpassord siden vi trenger forhøyede privilegier for å utføre kommandoene.

sudo su service docker stopp 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-demonen som lytter til Docker APIer og administrerer de forskjellige Docker-objektene. Dockerd kan brukes som et alternativ til kommandoen$ systemctl start docker‘Som også brukes til å starte Docker-demonen.

  1. Åpen Terminal og start dockerd ved å utføre kommandoen nedenfor:
sudo dockerd

Løsning 4: Start Docker med servicekommandoen

Hvis du bruker SysV init-system, så vil ikke systemctl-kommandoen fungere for deg. Vi må bruke servicekommando til start docker-demonen.

  1. starte terminalen og henrette kommandoene nedenfor:
sudo service --status-all sudo service docker start

Løsning 5: Start Docker-tjenesten med Snap

Hvis du installerte Docker medSnap pakke manager, må du bruke snap-kommandoen til å administrere docker-demonen.

Vanligvis administrerer Snap tjenestene sine automatisk. I situasjoner som denne feilen vil det imidlertid kreve manuell inngrep. Noen av argumentene du kan bruke med snap-kommandoen inkluderer stopp, start og omstart. I vårt tilfelle vil vi bruke startparameteren.

  1. Åpne Terminal og utfør kommandoen nedenfor tilstart Docker.
sudo snap start docker

2. Utfør kommandoen nedenfor til bekrefte hvorvidt Docker-tjenesten ble startet.

sudo snap-tjenester

Det vil liste alle kjører snap-tjenester.

Hvis ovenstående kommandoer ikke fungerer for deg, kan du prøve koble til docker: stikkontakt siden den ikke er automatisk tilkoblet som standard. Når du er ferdig, start de Docker-tjeneste.

3. Start terminalen og kjør kommandoene nedenfor:

sudo snap connect docker: hjem: home sudo snap start docker

Løsning 6: Start Docker for brukere uten Root Pprivilegier

Feilen kan også oppstå pga mangel på forhøyede privilegier og brukeren har ikke tilgang til ‘unix: ///var/run/docker.sock.’ Heldigvis er det en løsning. Vi eksporterer Docker Host-variabelen til localhost via port 2375.

  1. Åpne terminalen og kjør kommandoen nedenfor:
eksporter DOCKER_HOST = tcp: // localhost: 2375

Løsning 7: Installer Docker på nytt

Hvis løsningene ovenfor ikke løser feilen, er det stor sannsynlighet for at du kan ha installasjonsfeil. For å installere Docker riktig i Linux-systemet, følg trinnene fra det offisielle Docker-nettstedet.

Facebook Twitter Google Plus Pinterest