Impossibile connettersi al demone Docker su macOS


208

Normalmente preferisco gestire le mie app sul mio OSX con brew

Sono in grado di installare docker, docker-compose e docker-machine

docker --version
Docker version 17.05.0-ce, build 89658be
docker-compose --version
docker-compose version 1.13.0, build unknown
docker-machine --version
docker-machine version 0.11.0, build 5b27455

Non ho scaricato ed eseguito l'app 'Docker per Mac'.

Tuttavia quando provo a correre

> docker run -d -p 80:80 --name webserver nginx
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.

Ho già controllato il file del calzino

ls -lah /var/run/docker.sock /var/tmp/docker.sock
ls: /var/run/docker.sock: No such file or directory
ls: /var/tmp/docker.sock: No such file or directory

Ho anche provato questa soluzione proposta: finestra mobile sudo Mac OS X Impossibile connettersi al demone Docker. Il demone docker è in esecuzione su questo host?

Ma ho ricevuto questo messaggio di errore:

$ eval $(docker-machine env default)
Host does not exist: "default"

È possibile ottenere un servizio docker eseguito dagli strumenti della riga di comando?


2
Avvia l'applicazione Docker da Launchpad, mostrerà una finestra di dialogo che chiede che per eseguire l'app, è necessario concedere alcuni privilegi per questa app, dopodiché la Docker è tornata al gioco.
Rafael Kerr,

Nel mio caso c'era un altro utente che ha effettuato l'accesso ed è per questo che non ha funzionato. Disconnettiti da un altro utente e poi ha funzionato
Raza Ahmed,

Risposte:


474

Su un Mac supportato, esegui:

brew cask install docker

Quindi avviare la finestra mobile app . Fai clic su Avanti. Chiederà un accesso privilegiato. Confermare. Un'icona balena dovrebbe apparire nella barra in alto. Fare clic e attendere che venga visualizzato "Docker in esecuzione".

Dovresti essere in grado di eseguire i dockercomandi ora:

docker ps

Poiché la finestra mobile è un pacchetto a livello di sistema, non è possibile installarlo utilizzando brew installe al suo posto è necessario utilizzare la cask.

Nota: questa soluzione funziona solo per Mac le cui CPU supportano la virtualizzazione, che potrebbe non includere i vecchi Mac.


10
Questa dovrebbe essere la risposta accettata. Vai alla piattaforma di lancio dopo l'installazione e cerca nella finestra mobile
Joe Lloyd il

39
Ho fatto una finestra mobile di installazione brew e l'app non è stata installata fino a quando non ho eseguito il docker di installazione brek cask brew. Grazie!
jbrahy,

2
Cosa succede se il comando continua a non funzionare anche dopo l'installazione della botte (e la balena Docker mostra che è in esecuzione dopo aver fornito la password)?
vol7ron,

2
Questa soluzione funziona solo per Mac le cui CPU supportano la virtualizzazione. Ad esempio, non funziona su un Mac Pro 2009. Potresti modificare la tua risposta per includere questo fatto importante?
John Y,

3
Questo mi ha aiutato come ho usato brew install dockerinizialmente. brew installgestire i servizi della CLI ed brew cask installè un'estensione che aiuta a gestire i servizi con l'interfaccia utente grafica.
Binoy S Kumar,

107

Su macOS il dockerbinario è solo un client e non è possibile utilizzarlo per eseguire il daemon docker, poiché il daemon Docker utilizza funzionalità del kernel specifiche di Linux, pertanto non è possibile eseguire Docker in modo nativo in OS X. Quindi è necessario installare docker-machineper creare VM e allega ad esso.

Installa docker-machinesu macOS

Se non hai docker-machineancora il comando, installalo utilizzando uno dei seguenti metodi:

  • Utilizzando Brew comando: brew install docker-machine docker.
  • Manualmente dalla pagina dei rilasci :

    $ curl -L https://github.com/docker/machine/releases/download/v0.16.1/docker-machine-`uname -s`-`uname -m` >/usr/local/bin/docker-machine
    $ chmod +x /usr/local/bin/docker-machine
    

Vedi: Inizia con Docker per Mac .

Installa Virtualbox

docker-machinesi affida all'installazione di VirtualBox e non funzionerà in caso contrario. Se hai già VirtualBox, puoi saltare questo passaggio.

  • Utilizzando Homebrew: brew cask install virtualbox
  • Utilizzo manuale delle versioni su Virtualbox.org

Dovrai accettare attivamente il caricamento dell'estensione del kernel di Virtualbox nel pannello Sicurezza di OS X e quindi riavviare la macchina affinché i comandi successivi non falliscanoError: VBoxNetAdpCtl: Error while adding new interface

Configura docker-machinesu macOS

Crea una defaultmacchina (se non ne hai una, vedi:) docker-machine ls:

docker-machine create --driver virtualbox default

Quindi configurare l'ambiente per il client Docker:

eval "$(docker-machine env default)"

Quindi ricontrolla elencando i contenitori:

docker ps

Vedi: Inizia con Docker Machine e una VM locale .


Relazionato:


7
questa dovrebbe essere la risposta accettata. Descrive chiaramente a) perché non funziona, b) istruzioni per farlo funzionare senza scaricare l'interfaccia utente su OSX ec) link di riferimento per ulteriori letture.
user2490003

1
Ho anche dovuto installare virtualbox per far funzionare i comandi della finestra mobile:brew cask install virtualbox
oligofren

1
Per avviare un docker-machineaccesso, utilizzare brew services start docker-machineo, se non si desidera utilizzare Homebrew, vedere la sezione "Avvia macchine locali all'avvio" di questa pagina (include le istruzioni per Mac).
Chris H.

40

Ho avuto lo stesso problema e l'ho risolto nei seguenti passaggi:

docker-machine restart

Chiudere il terminale (o iTerm2, ecc., Ecc.) E riavviare

eval $(docker-machine env default)

Ho anche risposto qui


2
Quello "dovrebbe" essere tutto ciò di cui hai bisogno :)
rogerdpack

15

Ho Mac OS e apro Launchpade seleziono l' dockerapplicazione. dalla resetscheda fare clic su restart.


Sì, devi prima avviare l'applicazione Docker haha
Ender

12

Prova questo per creare il valore predefinito.

docker-machine create default

5
questo mi ha dato ... docker-machine create default Creazione di CA: /Users/stens/.docker/machine/certs/ca.pem Creazione del certificato client: /Users/stens/.docker/machine/certs/cert.pem In esecuzione controlli pre-creazione ... Errore con controllo pre-creazione: "VBoxManage non trovato. Assicurati che VirtualBox sia installato e VBoxManage sia nel percorso" .... il che sembra errato poiché VirtualBox non è più necessario per eseguire docker su osx
Scott Stensland,

Sembra che tu possa anche usare xhyve, vedi stackoverflow.com/a/42419979/32453 o semplicemente installa virtualbox :)
rogerdpack

E con ciò ?
FrankyFred,

7

su OSX assicurati di aver avviato l'applicazione Docker prima dell'emissione

docker ps

o docker build... ecc ... sì, sembra strano e in qualche modo fuorviante tale emissione

docker --version

dà la versione anche se il demone docker non è in esecuzione ... idem per quegli altri cmd di versione ... Ho appena riscontrato esattamente gli stessi sintomi ... questo comportamento su OSX è diverso da su Linux


3

Ho avuto lo stesso problema. Docker in esecuzione ma impossibile accedervi tramite l'interfaccia della riga di comando.

Per me il problema è stato risolto eseguendo "Docker Quickstart Terminal.app". Si trova nella cartella "/ Applicazioni / Docker /". Finché lavoro in questa istanza dell'app Terminal Docker funziona perfettamente. Se è necessaria una seconda finestra, devo eseguire di nuovo l'app "Avvio rapido".

Ho un'installazione Docker per Mac. Pertanto non sono sicuro che la mia soluzione sia valida per un'installazione Homebrew.

L'app "Docker Quickstart Terminal" sembra essere essenzialmente alcuni script Apple per avviare l'app terminal e uno script bash start che inizializza tutte le variabili di ambiente necessarie.

Spero che questo aiuti qualcun altro!


3

Avevo aggiornato la finestra mobile, la finestra mobile diceva che era in esecuzione e la diagnosi era buona. Ho dovuto disinserire alcune variabili d'ambiente legacy (grazie https://docs.docker.com/docker-for-mac/troubleshoot/#workarounds-for-common-problems )

unset DOCKER_HOST
unset DOCKER_CERT_PATH
unset DOCKER_TLS_VERIFY

1
questo risolto il mio problema dopo un aggiornamento dalla finestra mobile basata su VM al programma di installazione Mac. Continuava a cercare la VM.
bobomoreno,


2

Docker per Mac è obsoleto. E non hai bisogno di Homebrew per eseguire Docker su Mac. Invece probabilmente vorrai installare Docker Desktop o, se già installato, assicurarti che sia aggiornato e in esecuzione, quindi prova a riconnetterti al socket.

inserisci qui la descrizione dell'immagine


2

È necessario eseguire lo script per la finestra mobile di installazione e avviarlo dalla riga di comando:

brew cask install docker
pip3 install docker-compose
open -a Docker
docker-compose ... 

dopodiché docker-composedovrebbe funzionare


ha funzionato per me, grazie
Soul Coder,

1

Installa minikube e vieni a unirti al lato oscuro.

https://kubernetes.io/docs/tasks/tools/install-minikube/

$ bash --version
GNU bash, version 5.0.3(1)-release (x86_64-apple-darwin18.2.0)
Copyright (C) 2019 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>

eval $(minikube docker-env)

$ docker run --rm -v ${PWD}:/local swaggerapi/swagger-codegen-cli generate     -i /local/swagger.json     -l python     -o /local/test/
[main] INFO io.swagger.parser.Swagger20Parser - reading from /local/swagger.json
[main] WARN io.swagger.codegen.DefaultGenerator - 'host' not defined in the spec. Default to 'localhost'.

Funziona alla grande su Macbook Pro 2018 con bash v5. Non è necessario installare tutte le altre sciocchezze della finestra mobile in questi giorni IMO. Dalla mia esperienza, la VM e lo script di installazione forniti con minikube possono sostituire la macchina docker.


Come commento di follow-up, avevo bisogno anche della finestra mobile per un altro progetto senza kube e il desktop della finestra mobile funziona alla grande. Basta non avviarlo sempre altrimenti Kube si arrabbia da questo post.
Ligemer,

1

Stavo affrontando un problema simile sul mio mac e ho scoperto che la docker non era in esecuzione nella mia macchina, sono andato alle applicazioni e ho invocato la balena e poi ha funzionato.



0

ho semplicemente dovuto eseguire la ricerca Spotlight ed eseguire l'applicazione Docker nella cartella / Applicazioni che ha brew cask installcreato. Una volta eseguito, ha chiesto di completare l'installazione. Sono stato quindi in grado di correredocker ps

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.