Otrzymuję komunikat o błędzie informujący, że nie mogę połączyć się z demonem Dockera. Przyjrzałem się odpowiedziom innych osób, które miały podobne problemy, ale to nie pomogło. Używam wersji Ubuntu 15.10. Postaram się podać wszystkie posiadane informacje.
root@# docker-compose -f docker-compose-deps.yml up -d
ERROR: Couldn't connect to Docker daemon at http+docker://localunixsocket - is it running?
If it's at a non-standard location, specify the URL with the DOCKER_HOST environment variable.
Wersja platformy Docker
root@# sudo docker version
Client:
Version: 1.9.1
API version: 1.21
Go version: go1.4.2
Git commit: a34a1d5
Built: Fri Nov 20 13:20:08 UTC 2015
OS/Arch: linux/amd64
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Wersja Docker-Compose
root@# docker-compose --version
docker-compose version 1.5.2, build 7240ff3
Tak się dzieje, gdy spróbuję zatrzymać lub uruchomić usługę ...
root@# sudo service docker stop
stop: Unknown instance:
root@# sudo service docker start
docker start/running, process 5375
Jeśli biegnę ps aux | grep docker
root@# ps aux | grep docker
root 4233 0.0 0.0 13692 2204 pts/15 S+ 10:27 0:00 grep --color=auto docker
Każda pomoc byłaby bardzo mile widziana. Daj mi znać, jeśli będziesz potrzebować więcej informacji.
ubuntu
terminal
docker
docker-compose
daveskylark
źródło
źródło
Odpowiedzi:
Miałem ten sam błąd po 15 minutach debugowania. Okazuje się, że wszystko, czego potrzebuje, to
sudo
:) Sprawdź [Utwórz grupę Docker] tutaj https://docs.docker.com/engine/installation/linux/ubuntulinux/, aby pozbyć się przedrostka sudo.źródło
sudo
moim zdaniem jest to tylko obejście / włamanie. ponieważ część tworząca grupę nie jest tutaj wyjaśniona, podano tylko łącze, a zawartość tego łącza uległa zmianie, uważam to za odpowiedź tylko na łącze i jest teraz zasadniczo bezużyteczna (w przypadku prawdziwej części poprawionej). czy mógłbyś dodać opis jak dodać tę grupę?sudo
to również zły pomysł. Zobacz dokumentację Dockerasudo usermod -aG docker $USER
, to i będzie działać później.Miałem ten problem i nie chciałem zepsuć rzeczy przy użyciu
sudo
. Podczas badania starałem się uzyskać informacje:Zaskakująco miałem następujący błąd:
Z jakiegoś powodu nie miałem wystarczających uprawnień, następujące polecenie rozwiązało mój problem:
Zrobione !
źródło
docker.sock
z grupą inną niż głównadocker
. Ale możemy to zmienić-G
flagą podczas inicjowania demona Dockera. W moim przypadku dodaję grupę dla$USERNAME
, czyli dodaj grupę docker, a następnie zrestartuj mój komputer (ubuntu 16.04, PC). To dobrze działa. Jest to zalecane w dokumentach docker.Wygląda na to, że problem został spowodowany przez stary błąd Dockera, w którym plik gniazda nie został odtworzony po awarii Dockera. Jeśli to jest problem, zmiana nazwy pliku gniazda powinna umożliwić jego ponowne utworzenie:
Ponieważ ten błąd został naprawiony, większość ludzi otrzymujących błąd
Couldn't connect to Docker daemon
prawdopodobnie otrzymuje go, ponieważ nie ma ich wdocker
grupie i nie ma uprawnień do odczytu tego pliku. Bieganie zsudo docker ...
rozwiązuje ten problem, ale nie jest świetnym rozwiązaniem.Docker można uruchomić jako użytkownik inny niż root (bez
sudo
), który ma odpowiednie uprawnienia grupy. Dokumentacja poinstalacyjna systemu Linux zawiera szczegółowe informacje. Krótka wersja:Dzięki temu użytkownicy w
docker
grupie mogą uruchamiaćdocker
idocker-compose
wydawać polecenia bezsudo
. Sam Docker uruchamia root, pozwalając na niektóre ataki, więc nadal musisz uważać na używane kontenery. Aby uzyskać więcej informacji, zobacz dokumentację Docker Security .źródło
Miałem ten sam problem. Po zrobieniu notatek i przeanalizowaniu niektórych wyników debugowania w końcu rozwiązałem, co może być tym samym błędem. Najpierw uruchom usługę,
service docker start
Nie zapomnij dołączyć użytkownika do grupy docker.
źródło
sudo
naprawiłem to dla innych -_- Cieszę się, że to rzeczywiście to, o czym zapomniałem zrobić. Tak prosty!Powinieneś dodać swojego użytkownika do grupy "docker" za pomocą czegoś takiego:
źródło
Otrzymałem ten błąd, gdy w
Dockerfile
katalogu znajdowały się pliki , które nie były dostępne dla bieżącego użytkownika.docker
w związku z tym nie mógł przesłać pełnego kontekstu do demona i przyniósł komunikat „ Nie można połączyć się z demonem Dockera pod adresem http + docker: // localunixsocket ”.źródło
docker build .
spowoduje problemy z uprawnieniami.Jednym ze sposobów rozwiązania tego problemu byłoby najpierw dodanie użytkownika do
docker
grupy, uruchamiając następujące polecenieWAŻNE: pamiętaj, aby wylogować się z systemu (nie tylko z terminala) i zalogować się ponownie, aby to odniosło skutek!
źródło
Z wyjścia "ps aux | grep docker" wygląda na to, że demon Dockera nie jest uruchomiony. Spróbuj użyć poniższych metod, aby zobaczyć, co jest nie tak i dlaczego docker się nie uruchamia
$ sudo tail -f /var/log/upstart/docker.log
$ sudo docker -d -D
źródło
W moim przypadku Twoja usługa docker może zostać zatrzymana
Polecenie uruchomienia usługi docker:
$ sudo systemctl start docker
Polecenie do sprawdzenia, czy się uruchamia:
$ sudo docker run hello-world
źródło
Kolejny powód, dla którego ten błąd może się pojawić: dla mnie była to źle sformułowana definicja ścieżki obrazu w
docker-compose.yml
:Najpierw wygląda dobrze, ale
CONTAINER_REGISTRY_BASE=eu.gcr.io/my-project/
ustawiłem na env. Najwyraźniej//
ten błąd spowodował ścieżka obrazu.źródło
po prostu spróbuj
sudo
. Wygląda na to, że problem z pozwoleniem!to działało dla mnie.
źródło
Użyłem Ubuntu 16.04 i znalazłem ten problem, gdy użyłem docker-compose. Naprawiłem to, uruchamiając to polecenie.
źródło
Czy istnieje niewielka możliwość, że usunąłeś domyślną maszynę? Ale najpierw sprawdź, czy są tam wszystkie pliki (OSX, podobnie w innych systemach)
Zainstaluj także aplikację Docker, ponieważ konserwacja kontenerów jest znacznie łatwiejsza:
i uruchom aplikację Docker z poziomu wyszukiwarki (poczekaj, aż usługa zostanie w pełni uruchomiona)
Następnie sprawdź instalację za pomocą:
jeśli na liście nie ma maszyn, utwórz jeden i uruchom go:
Następnie polecenie build, compose i wszystkie inne polecenia powinny działać poprawnie.
źródło
w moim przypadku to dlatego, że zezwolenie ubuntu,
sprawdź pozwolenie przez
jeśli wydrukują pozwolenie na problem, użyj
źródło
U mnie poprawka polegała na zainstalowaniu nowszej wersji (1.24)
docker-compose
korzystania z tego artykułu .Poprzednia wersja (1.17) została zainstalowana z
ubuntu
domyślnego repozytorium, ale po zainstalowaniu nowszej wersji udało mi się uruchomić kontener. Mam nadzieję, że to komuś pomoże.źródło
Myślę, że to ze względu na prawo dostępu, po prostu musisz napisać
źródło
W moim przypadku mam ten sam błąd, gdy próbuję,
docker-compose build
a moje rozwiązanie zostało po prostu dodanesudo
źródło
Znalazłem to i wydawało się, że rozwiązało mój problem.
GitHub Napraw awarię demona platformy Docker
Zmieniłem zawartość mojego pliku docker-compose-deps.yml, jak widać w linku. Potem uciekłem
docker-compose -f docker-compose-deps.yml up -d
. Potem zmieniłem to z powrotem iz jakiegoś powodu zadziałało. Nie musiałem kontynuować czynności z podanego linku, ale pierwsze dwa kroki rozwiązały problem.źródło