Nadat ik mijn Docker-versie heb bijgewerkt naar 0.8.0
, krijg ik een foutmelding bij het invoeren van sudo docker version
:
Client version: 0.8.0
Go version (client): go1.2
Git commit (client): cc3a8c8
2014/02/19 12:54:16 Can't connect to docker daemon. Is 'docker -d' running on this host?
En ik heb de instructies gevolgd en het commando sudo docker -d
ingevoerd, en ik kreeg dit:
[/var/lib/docker|2462000b] +job initserver()
[/var/lib/docker|2462000b.initserver()] Creating server
open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: no such file or directory[/var/lib/docker|2462000b] -job initserver() = ERR (1)
2014/02/19 12:55:57 initserver: open /var/lib/docker/aufs/layers/cf2414da53f9bcfaa48bc3d58360d7f1cfd3784e4fe51fbef95197709dfc285d: no such file or directory
Hoe los ik het probleem op?
Antwoord 1, autoriteit 100%
Linux
De Stappen na installatie voor Linuxdocumentatie onthult de volgende stappen:
- Maak de groep docker.
sudo groupadd docker
- Voeg de gebruiker toe aan de groep docker.
sudo usermod -aG docker $(whoami)
- Log uit en weer in om ervoor te zorgen dat docker werkt met de juiste machtigingen.
- Start docker.
sudo service docker start
Mac OS X
Zoals Dayel Ostracozegt dat het nodig is om omgevingsvariabelen toe te voegen:
docker-machine start # Start virtual machine for docker
docker-machine env # It's helps to get environment variables
eval "$(docker-machine env default)" # Set environment variables
De docker-machine start
Opdracht geeft de opmerkingen uit om het proces te begeleiden.
Antwoord 2, Autoriteit 25%
Linux
Om Docker Daemon op Linux (From CLI ), RUN:
$ sudo service docker start # Ubuntu/Debian
OPMERKING: Sla de $
teken over bij het kopiëren en plakken. sup>
Op RedHat / CentOS, RUN: sudo systemctl start docker
.
Voer het initialiseer het “basis” -bestandssysteem:
$ sudo service docker stop
$ sudo rm -rf /var/lib/docker
$ sudo service docker start
of handmatig zoals:
$ sudo docker -d --storage-opt dm.basesize=20G
Installeer docker-machine
op Linux
Om machine binaries op Linux te installeren:
-
lokaal:
install -vm755 <(curl -L https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) $HOME/bin/docker-machine
-
GLOBAL:
sudo bash -c 'install -vm755 <(curl -L https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) /usr/local/bin/docker-machine'
MacOS
Op MacOS De docker
Binary is slechts een client en u kunt het niet gebruiken om de Docker Daemon uit te voeren, omdat Docker Daemon Linux-specifieke kernel-functies gebruikt, daarom kunt u Docker native in OS niet uitvoeren X. Dus u moet docker-machine
installeren om VM te maken en eraan te bevestigen.
Installeer docker-machine
op MacOS
Als u docker-machine
Opdracht nog, installeer het met een van de volgende methoden:
- met behulp van brouwen opdracht:
brew install docker-machine docker
. -
Handmatig van Github :
install -v <(curl https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) /usr/local/bin/docker-machine
Zie: Aan de slag met Docker voor Mac .
Configureer docker-machine
op MacOS
Start Docker Machine Via Homebrew, Run:
brew services start docker-machine
Om een ​​default
Machine (als u er een niet hebt, zie: docker-machine ls
):
docker-machine create --driver virtualbox default
Stel vervolgens de omgeving in voor de Docker-client:
eval "$(docker-machine env default)"
Dubbele-cheque per lijst met containers:
docker ps
Zie: Aan de slag met Docker Machine en een lokale VM .
Installeer Docker.App op MacOS
Als alternatief tot bovenstaande oplossing kunt u een Docker-app installeren door:
brew cask install docker
Controleer dit POST voor meer informatie . Zie ook: kan geen verbinding maken met de Docker Daemon op MacOS
Antwoord 3, Autoriteit 20%
Als u Docker op OS X gebruikt, heeft het uitvoeren van de volgende evaluatie voor mij gewerkt.
eval "$(docker-machine env default)"
Als je deze evaluatieverklaring liever niet bij elke terminalsessie hoeft uit te voeren, kun je dit toevoegen aan je bash_profile
:
#Docker
eval "$(docker-machine env default)"
Zorg ervoor dat u de terminalsessie opnieuw start of de broncode uitvoert op bash_profile
om de wijzigingen door te voeren.
Antwoord 4, autoriteit 14%
Na een gedetailleerd onderzoek lijkt dit probleem elke keer op te treden nadat Mac OS X opnieuw is opgestart(of de virtuele Docker-machine opnieuw is opgestart), waardoor de Docker-client geen verbinding kan maken met de Docker-daemon.
Om het probleem op te lossen, kunt u:
A) Installeer Docker Toolbox opnieuw met het officiële installatieprogramma (https://www.docker.com/ products/docker-toolbox), of gewoon
B) Voer de volgende opdrachten in volgorde uit:
# First make sure that the virtual machine is running
docker-machine start default
# Regenerate TLS connection certs, requires confirmation
docker-machine regenerate-certs default
# Finally, set env
eval "$(docker-machine env default)"
C) Hetzelfde als (B), u kunt ook de volgende regel kopiëren en plakken om alle drie de opdrachten uit te voeren:
docker-machine start default; docker-machine regenerate-certs default; eval "$(docker-machine env default)"
In het geval u de volgende foutmelding krijgt:
Error getting SSH command: Something went wrong running an SSH command!
command : cat /etc/os-release
err : exit status 255
output :
voer de drie commando’s gewoon nog een keer uit, en het zou de tweede keer moeten werken.
Antwoord 5, autoriteit 7%
Dit gebeurt meestal als je niet in de docker
-groep zit. Je kunt jezelf toevoegen aan de docker
groep met:
sudo usermod -aG docker yourusername
of
sudo usermod -aG docker $(whoami)
Hierna moet u uitloggen en weer inloggen op de server.
Als alternatief kunt u elk Docker-commando sudo
gebruiken.
Antwoord 6, autoriteit 5%
Als alle andere oplossingen hierboven niet werken, kun je proberen het eigendom van /var/run/docker.sock
te controleren:
ls -l /var/run/docker.sock
Als je niet de eigenaar bent, verander dan van eigenaar met het commando:
sudo chown *your-username* /var/run/docker.sock
Dan kun je doorgaan en proberen de Docker-commando’s probleemloos uit te voeren 😀
Antwoord 7, autoriteit 3%
U kunt de opdracht gebruiken
sudo service docker stop && sudo service docker start
OF
sudo service docker restart
om het eenvoudig opnieuw te starten.
Antwoord 8, autoriteit 3%
De beste manier om erachter te komen waarom Docker niet werkt, is door de daemon handmatig uit te voeren.
$ sudo service docker stop
$ ps aux | grep docker # do this until you don't see /usr/bin/docker -d
$ /usr/bin/docker -d
De Docker-daemon logt in op STDOUT, dus hij begint alles uit te spugen.
Dit was wat mijn probleem was:
[8bf47e42.initserver()] Creating pidfile
2015/01/11 15:20:33 pid file found, ensure docker is not running or delete /var/run/docker.pid
Dit kwam doordat de instantie was gekloond vanaf een andere virtuele machine. Ik moest alleen het pid-bestand verwijderen en daarna werkte alles.
Natuurlijk, in plaats van blindelings aan te nemen dat dit zal werken, raad ik aan de daemon nog een keer handmatig uit te voeren en de loguitvoer te controleren op eventuele andere fouten voordat de service opnieuw wordt opgestart.
Antwoord 9, autoriteit 2%
Doe een ps aux | grep docker
om te zien of de daemon draait. Indien niet /etc/init.d/docker start
Antwoord 10, autoriteit 2%
Als u het bericht Can't connect to docker daemon. Is 'docker -d' running on this host?
, u kunt dit controleren met docker version
.
Als je de informatie ziet zoals Docker Client wordt uitgevoerd. maar Docker Server niet, het is duidelijk dat u de Docker-server moet starten.
In CentOS kun je service
gebruiken om de Docker-server te starten of te stoppen.
$ sudo service docker stop
$ sudo service docker start
Nadat u docker version
heeft getypt, krijgt u de informatie van Docker Client en Docker Serveren de Docker-daemon is gestart.
Antwoord 11, autoriteit 2%
Ik heb een soortgelijk probleem. Ik moest uitloggen en opnieuw inloggen bij shell omdat ik zojuist Docker heb geïnstalleerd en de volgende opdracht niet in mijn omgeving werd weergegeven.
export DOCKER_HOST=127.0.0.1:4243 >> ~/.bashrc
Antwoord 12, autoriteit 2%
Ik herstart Docker nadat ik het heb geïnstalleerd:
$ sudo service docker stop
$ sudo service docker start
En het werkt.
Antwoord 13
Gebruik Docker CE-app
macOS
Gebruik de nieuwe Docker Community Edition-appvoor macOS. Bijvoorbeeld:
-
Verwijder alle Docker Homebrew-pakketten die je tot nu toe hebt geïnstalleerd:
brew uninstall docker-compose brew uninstall docker-machine brew uninstall docker
-
Installeer een app handmatigof via Homebrew-Cask:
brew install --cask docker
Opmerking: deze app maakt de nodige links naar docker
, docker-compose
, docker-machine
, enz. sup>
- Na het uitvoeren van de app, bekijk je het Docker-walvispictogram in het statusmenu.
- Nu zou je de commando’s
docker
,docker-compose
,docker-machine
zoals gewoonlijk moeten kunnen gebruiken in de Terminal.
Gerelateerd:
- Brew install docker bevat geen docker-engine?
- Kan geen verbinding maken met de Docker-daemon op macOS
Linux/Windows
Download de Docker CE van de downloadpaginaen volg de instructies.
Antwoord 14
Ik heb met dit probleem te maken gehad en ik heb Docker opnieuw opgestart met deze opdrachten:
$ sudo service docker stop
$ sudo service docker start
Maar ik heb mijn probleem niet opgelost, omdat ik vergat mijn Docker-commando’s uit te voeren zonder sudo
. Voor degenen die met dit probleem worden geconfronteerd, probeer dat te controleren.
Probeer
$ sudo docker info
in plaats van dit:
$ docker info
Antwoord 15
Ik heb dezelfde fout en het proberen van docker-machine regenerate-certs
of eval..
werkte niet voor mij.
Dit op OS X 10.11.3 (El Capitan) en Docker v1.10.1. Ik kon het alleen repareren door docker-machine te verwijderen en opnieuw te maken. Bron
Als u docker-machine ls
uitvoert, ziet u een soortgelijke uitvoer als hieronder;
DOCKER
Onbekend
FOUTEN
Kan de docker-versie niet opvragen: kan niet
verbinding maken met het eindpunt van de docker-engine
Probeer uw Docker-machine te verwijderen met;
docker-machine rm -f default
Waar default
de naam van uw Docker-machine is. Dan;
docker-machine create -d virtualbox default
Maakt een nieuwe Docker-machine.
Controleer of alles er nu normaal uitziet (geen fouten of onbekende Docker) met:
docker-machine ls
Vergeet tot slot niet om "$(docker-machine env default)"
uit te voeren voordat u doorgaat of voer de Docker Quickstart Terminal uit die dit voor u doet…
Antwoord 16
Ik wist dat er al veel antwoorden in dit bericht staan. Ik zou graag een eenvoudig antwoord willen toevoegen waarmee het bovengenoemde probleem is opgelost.
sudo systemctl start docker
Voer het bovenstaande commando uit en het zal alle docker-gerelateerde threads/services starten.
Antwoord 17
Probeer de huidige gebruiker toe te voegen aan de docker
groep:
sudo usermod -aG docker $USER
Vervolgens uitloggen en inloggen.
Antwoord 18
Ik had hetzelfde probleem: “Kan geen verbinding maken met docker-daemon.” (behalve dat ik geen ‘bestand niet gevonden’-fout kreeg toen ik probeerde de server te starten.)
‘ps’ toonde aan dat “/usr/bin/docker -d” nog steeds actief was
Ik realiseerde me echter dat het me nooit was gelukt om de server zelf te draaien. Elke poging had geleid tot
...
2014/03/24 21:57:29 pid file found, ensure docker is not running or delete /var/run/docker.pid
Dus ik realiseerde me te laat dat het installeren van docker de daemon misschien had geregistreerd met upstart, die het voor mij had gestart. Daarom mislukt het proberen om de daemon te doden om hem handmatig opnieuw op te starten (bewerking niet toegestaan). Dus ik deed een
sudo kill -9 <PID>
over het daemon-proces. Een andere daemon nam onmiddellijk zijn plaats in, en deze nieuwe laat mijn CLI-client nu verbinding maken:
$ sudo docker info
Containers: 0
Images: 0
Driver: aufs
Root Dir: /var/lib/docker/aufs
Dirs: 0
WARNING: No memory limit support
WARNING: No swap limit support
Antwoord 19
De DOC-site van Docker volgen: Beheer Docker als een niet-rootgebruiker
1) Docker-groep maken
sudo groupadd docker
2) Maak de gebruiker lid van de docker-groep om de groepsrechten te krijgen.
sudo usermod -aG docker $USER
Controleer of de omgevingsvariabele DOCKER_HOST is ingesteld voor uw shell.
env | grep DOCKER_HOST
Als het bestaat,
unset DOCKER_HOST
Dan zou dit moeten werken:
docker run hello-world
Antwoord 20
Ik had net hetzelfde probleem, draaiend op Amazon AWS.
Dit is wat ik heb geprobeerd:
- Stel
docker-machine
lokaal in met een reeds bestaande AWS-instantie - Algemene instellingen gebruikt
- Het was een beetje verbonden, maar omdat de externe poort was gesloten, mislukte het
- Daarna weigerde de Docker-daemon op te starten, maar het uitvoeren van
dockerd
werkte wel…
Het is als volgt getest op de externe machine:
service docker start # Also restart, no success
systemctl start docker # Also restart, no success
dockerd # Success
Ik heb /var/lib/docker
verwijderd en alles verwijderd, maar er was geen succes na herinstallatie. Helaas heb ik geen logs van storingen opgeslagen, maar docker.service
weigerde gewoon te starten.
Maar wat uiteindelijk mijn probleem oploste, was eigenlijk:
sudo usermod -aG docker $(whoami)
Antwoord 21
In april 2020 op MacOS Catalina hoeft u alleen maar de desktoptoepassing te openen:
Antwoord 22
Ik heb hetzelfde probleem. In CentOS 6.5:
ps aux |grep `cat /var/run/docker.pid`
Als het laat zien dat er geen Docker-daemonproces bestaat, typ ik:
docker -d
Vervolgens Ctrl+ Dom Docker te stoppen. Omdat we de optie -d
gebruiken, zal Docker als daemon draaien. Nu kunnen we het volgende doen:
service docker start
Dan kan ik een docker pull centos
doen. Dat is alles.
OPMERKING: als deze niet werken, kun je yum update
proberen en deze vervolgens opnieuw herhalen, omdat ik hiervoor yum install
.
Antwoord 23
Als je op OS X draait met de Docker-tool, volg dan dit.
Start de daemon opnieuw en configureer uw omgeving:
docker-machine restart
En dan
docker-machine env
Eindelijk,
eval $(docker-machine env)
Om te testen of de daemon actief is:
docker ps -a
of docker-machine ls
. Hiermee worden alle containers weergegeven.
Antwoord 24
De Docker-serviceis mogelijk niet actief.
Als je een RedHat/Fedora/CentOS gebruikt, probeer dan dit:
sudo systemctl start docker
Als u Ubuntu/Debian gebruikt:
sudo service start docker
Docker begint te draaien op uw host en respectieve poort.
Antwoord 25
Om dit probleem op te lossen, moest ik de docker-service inschakelen:
sudo systemctl enable /usr/lib/systemd/system/docker.service
Antwoord 26
Controleer of je Docker Machine gebruikt 🙂
Voer docker-machine env default
uit.
Omdat volgens documentatie:
Docker Machine is een tool waarmee u Docker Engine kunt installeren op
virtuele hosts, en beheer de hosts metdocker-machine
-opdrachten. Jij
kan Machine gebruiken om Docker-hosts te maken op uw lokale Mac of Windows
box, op uw bedrijfsnetwerk, in uw datacenter of in de cloud
providers zoals AWS of Digital Ocean.Met behulp van
docker-machine
-opdrachten kunt u starten, inspecteren, stoppen en
herstart een beheerde host, upgrade de Docker-client en daemon, en
Configureer een Docker-client om met uw host te praten.Point de machine CLI op een hardloop-, beheerde host en u kunt rennen
docker
Opdrachten rechtstreeks op die gastheer. Bijvoorbeeld
docker-machine env default
Om naar een host te wijzen datdefault
wordt genoemd, volgt u op het scherm
Instructies omenv
Setup te voltooien en voerdocker ps
uit,
docker run hello-world
, enzovoort.
https://docs.docker.com/machine/overzicht/
Antwoord 27
- Ik had ook hetzelfde probleem. Het probleem was in sockets toegewezen aan Docker-daemon en Docker-Client.
- Ten eerste is toestemming niet ingesteld voor de Docker-Client op Docker.Sock U kunt het instellen met behulp van “Sudo UserMod -ag Docker $ User”
- Controleer vervolgens uw bash-bestand waar de Docker-Client actief is, voor mij was het op 0.0.0.0:2375, terwijl Docker-Daemon op Unix-socket draaide. (Het is ingesteld in het configuratiebestand van Dockerd).
- commentaar op de basashlijn en het zal goed werken.
- Maar als u het wilt laten werken aan de TCP-poort in plaats van UNIX-aansluiting, wijzigt u het configuratiebestand van DockerD en stelt u deze in op 0.0.0.0.2375 en houd de lijn in bash zoals het is indien aanwezig of op 0.0 is .0.0: 2375.
Antwoord 28
Om op te lossen, moet u de volgende opdrachten in de terminal uitgeven. Ik zal elke stap uitleggen:
# Uninstall Docker from apt packages
$ sudo apt-get remove docker docker.io
# Remove it from the libraries just to be
# sure it's gone forever
$ sudo rm -rf /var/lib/docker/*
Als je dingen wilt vereenvoudigen en meer tijd wilt krijgen, kun je mijn uitvoeren init
scriptmet de parameter installDocker
:
# Pull the init script from GitHub
$ wget https://github.com/dminca/dotfiles/blob/master/init
# Add rights to run the script
$ chmod 755 init
# Just run the script with the installDocker parameter
$ ./init installDocker
Een herstart is optioneel, maar ik raad u aan dit te doen om er zeker van te zijn dat alles soepel verloopt.
Antwoord 29
Ik had hetzelfde probleem met Docker 1.10 op Ubuntu 14.04 en geen van de gegeven antwoorden werkte. Voor mij was de oplossing om het opslagstuurprogramma op te geven bij het uitvoeren van de Docker-daemon.
sudo docker daemon --storage-driver=devicemapper
Antwoord 30
Ik had een soortgelijk probleem.
In mijn geval was de oplossing het verwijderen van een verouderde versie van docker. Ik neem aan dat dit wat conflicten veroorzaakte.
Op ubuntu:
sudo apt remove docker
het probleem voor mij opgelost