Nie można połączyć się z demonem Docker w systemie macOS


204

Zwykle wolę zarządzać moimi aplikacjami w systemie OSX za pomocą brew

Jestem w stanie zainstalować dokera, dokować-komponować i dokować-maszynę

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

Nie pobrałem i nie uruchomiłem aplikacji „Docker for Mac”.

Jednak kiedy próbuję uruchomić

> 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'.

Sprawdziłem już plik skarpety

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

Próbowałem również tego proponowanego rozwiązania: doker sudo systemu Mac OS X Nie można połączyć się z demonem Docker. Czy demon dokera działa na tym hoście?

Ale dostałem ten komunikat o błędzie:

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

Czy można uruchomić usługę dokowania za pomocą narzędzi wiersza polecenia?


2
Uruchom aplikację Docker z Launchpad, wyświetli się okno dialogowe z pytaniem, aby uruchomić aplikację, konieczne jest przyznanie niektórych uprawnień dla tej aplikacji, po tym Docker powraca do gry.
Rafael Kerr

W moim przypadku zalogował się inny użytkownik i dlatego się nie udało. Wyloguj się z innym użytkownikiem i wtedy pracował
Raza Ahmed

Odpowiedzi:


466

Na obsługiwanym komputerze Mac uruchom:

brew cask install docker

Następnie uruchom aplikację Docker . Kliknij Następny. Poprosi o uprzywilejowany dostęp. Potwierdzać. Ikona wieloryba powinna pojawić się na górnym pasku. Kliknij i poczekaj, aż pojawi się „Docker jest uruchomiony”.

Powinieneś być teraz w stanie uruchomić dockerpolecenia:

docker ps

Ponieważ okno dokowane jest pakietem systemowym, nie można go zainstalować przy użyciu brew installi zamiast tego należy użyć beczki.

Uwaga: to rozwiązanie działa tylko na komputerach Mac, których procesory obsługują wirtualizację, co może nie obejmować starych komputerów Mac.


10
To powinna być zaakceptowana odpowiedź. Przejdź do panelu uruchamiania po zainstalowaniu i dokowaniu wyszukiwania
Joe Lloyd

39
Zrobiłem dokera instalacji naparu i aplikacja nie została zainstalowana, dopóki nie uruchomiłem polecenia dokera instalacji beczki naparu Dzięki!
jbrahy

2
Co się stanie, jeśli polecenie nadal nie działa nawet po zainstalowaniu beczki (a wieloryb Docker pokazuje, że działa po podaniu hasła)?
vol7ron,

2
To rozwiązanie działa tylko na komputerach Mac, których procesory obsługują wirtualizację. Na przykład nie działa na komputerze Mac Pro 2009. Czy możesz edytować swoją odpowiedź, aby uwzględnić ten ważny fakt?
Jan Y

3
Pomogło mi to, jak brew install dockerpoczątkowo użyłem . brew installobsługuje usługi CLI i brew cask installjest rozszerzeniem, które pomaga radzić sobie z usługami z graficznym interfejsem użytkownika.
Binoy S Kumar

106

W systemie macOS docker plik binarny jest tylko klientem i nie można go używać do uruchamiania demona dokera, ponieważ demon Docker korzysta z funkcji jądra specyficznych dla systemu Linux, dlatego nie można uruchomić Dockera natywnie w systemie OS X. Musisz więc zainstalować docker-machine, aby utworzyć VM i dołącz do niego.

zainstalować docker-machine w systemie macOS

Jeśli nie masz docker-machine jeszcze polecenia, zainstaluj go przy użyciu jednej z następujących metod:

  • Korzystanie z naparu komendę: brew install docker-machine docker.
  • Ręcznie ze strony Wydania :

    $ 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
    

Widzieć: Rozpocznij pracę z Docker na Maca .

Zainstaluj Virtualbox

docker-machinepolega na zainstalowaniu VirtualBox i zakończy się niepowodzeniem, jeśli tak nie jest. Jeśli masz już VirtualBox, możesz pominąć ten krok.

  • Korzystanie z Homebrew: brew cask install virtualbox
  • Ręcznie, używając wersji na Virtualbox.org

Musisz aktywnie zaakceptować ładowanie rozszerzenia jądra Virtualbox w panelu Zabezpieczenia OS X, a następnie przejść do ponownego uruchomienia komputera aby kolejne polecenia nie zawiodłyError: VBoxNetAdpCtl: Error while adding new interface

Konfiguruj docker-machine w systemie macOS

Utwórz defaultmaszynę (jeśli jej nie masz, zobacz docker-machine ls:):

docker-machine create --driver virtualbox default

Następnie skonfiguruj środowisko dla klienta Docker:

eval "$(docker-machine env default)"

Następnie sprawdź dwukrotnie, wymieniając pojemniki:

docker ps

Zobacz: Rozpocznij pracę z Docker Machine i lokalną maszyną wirtualną .


Związane z:


7
to powinna być zaakceptowana odpowiedź. Wyraźnie określa: a) dlaczego to nie działa, b) instrukcje, aby działał bez pobierania interfejsu użytkownika w OSX ic) linki referencyjne do dalszego czytania.
user2490003

1
Musiałem także zainstalować virtualbox, aby uruchomić polecenia maszyny dokującej:brew cask install virtualbox
oligofren

1
Aby rozpocząć docker-machinelogowanie, użyj brew services start docker-machinelub, jeśli nie chcesz korzystać z Homebrew, zobacz sekcję „Uruchamianie lokalnych komputerów podczas uruchamiania” na tej stronie (zawiera instrukcje dla komputerów Mac).
Chris H.

40

Miałem ten sam problem, rozwiązałem go w następujących krokach:

docker-machine restart

Zamknij terminal (lub iTerm2 itp.) I uruchom ponownie

eval $(docker-machine env default)

Odpowiedziałem również tutaj



15

Mam system Mac OS i otwieram Launchpadi wybieram dockeraplikację. z resetzakładki kliknij restart.


Tak, musisz najpierw uruchomić aplikację Docker haha
Ender

12

Spróbuj utworzyć domyślną.

docker-machine create default

5
właśnie dało mi to ... docker-machine utwórz domyślnie Tworzenie CA: /Users/stens/.docker/machine/certs/ca.pem Tworzenie certyfikatu klienta: /Users/stens/.docker/machine/certs/cert.pem Uruchamianie kontrole przed utworzeniem ... Błąd przy sprawdzaniu przed utworzeniem: „Nie znaleziono VBoxManage. Upewnij się, że VirtualBox jest zainstalowany i VBoxManage znajduje się na ścieżce” .... co wydaje się nieprawidłowe, ponieważ VirtualBox nie jest już potrzebny do uruchomienia okna dokowanego na osx
Scott Stensland,

Wygląda na to, że możesz także użyć xhyve, patrz stackoverflow.com/a/42419979/32453 lub po prostu zainstaluj virtualbox :)
rogerdpack

No i co ?
FrankyFred,

7

w OSX upewnij się, że uruchomiłeś aplikację Docker przed wydaniem

docker ps

lub docker build... itd ... tak, wydaje się to dziwne i nieco mylące z tym wydaniem

docker --version

daje wersję, mimo że demon dokera nie działa ... to samo dotyczy innych wersji cmds ... Właśnie spotkałem dokładnie te same objawy ... to zachowanie w OSX jest inne niż w systemie Linux


3

Miałem ten sam problem. Docker działa, ale nie mógł uzyskać do niego dostępu za pośrednictwem interfejsu CLI.

Dla mnie problem został rozwiązany przez uruchomienie „Docker Quickstart Terminal.app”. Znajduje się to w folderze „/ Applications / Docker /”. Tak długo, jak pracuję w tym przypadku aplikacji Terminal Docker działa idealnie. Jeśli potrzebne jest drugie okno, muszę ponownie uruchomić aplikację „Szybki start”.

Mam instalację Docker na Maca. Dlatego nie jestem pewien, czy moje rozwiązanie jest ważne dla instalacji Homebrew.

Aplikacja „Docker Quickstart Terminal” wydaje się być w zasadzie niektórymi skryptami jabłkowymi do uruchomienia aplikacji terminalowej i skryptem startowym bash, który inicjuje wszystkie niezbędne zmienne środowiskowe.

Mam nadzieję, że to pomoże komuś innemu!


3

Miałem dokera na bieżąco, doktor powiedział, że działa, a diagnoza była dobra. Musiałem wyłączyć niektóre starsze zmienne środowiskowe (dzięki https://docs.docker.com/docker-for-mac/troubleshoot/#workarounds-for-common-problems )

unset DOCKER_HOST
unset DOCKER_CERT_PATH
unset DOCKER_TLS_VERIFY

1
to naprawiło mój problem po aktualizacji z okna dokowanego opartego na VM do instalatora Mac. Ciągle szukał maszyny wirtualnej.
bobomoreno

użyj tego, jeśli widzisz zły adres IP w polu „Cannot connect ... etc”
bobomoreno

2

Docker dla komputerów Mac jest przestarzały. I nie potrzebujesz Homebrew, aby uruchomić Docker na Macu. Zamiast tego prawdopodobnie będziesz chciał zainstalować Docker Desktop lub, jeśli jest już zainstalowany, upewnij się, że jest aktualny i działa, a następnie spróbuj ponownie połączyć się z gniazdem.

wprowadź opis zdjęcia tutaj


2

Powinieneś uruchomić skrypt do instalacji dokera i uruchomić go z wiersza poleceń:

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

po tym docker-composepowinno działać


pracował dla mnie, dzięki
Soul Coder

1

Zainstaluj minikube i dołącz do ciemnej strony.

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'.

Działa świetnie na Macbook Pro 2018 z bash v5. Nie trzeba instalować wszystkich innych nonsensów dokerów w tych dniach IMO. VM i skrypt instalacyjny, który jest dostarczany z minikube, może zastąpić maszynę dokującą z mojego doświadczenia.


Jako komentarz uzupełniający, potrzebowałem również dokera do innego projektu bez kostki, a pulpit dokera działa świetnie. Tylko nie uruchamiaj go zawsze, bo inaczej Kube będzie zły na ten post.
Ligemer

1

Miałem podobny problem na moim komputerze Mac i stwierdziłem, że doker nie działa na moim komputerze, po prostu poszedłem do aplikacji i wezwałem wieloryba, a potem zadziałało.



0

po prostu musiałem uruchomić wyszukiwanie w centrum uwagi i uruchomić aplikację Docker w folderze / Applications, który brew cask installutworzył. Po uruchomieniu program poprosił o dokończenie instalacji. Byłem wtedy w stanie biecdocker ps

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.