Docker nie może połączyć się z demonem dokera

473

Po zaktualizowaniu wersji Dockera do 0.8.0otrzymuję komunikat o błędzie podczas wprowadzania 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?

Postępowałem zgodnie z instrukcjami i wprowadziłem polecenie sudo docker -di otrzymałem to:

[/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

Jak rozwiązać problem?

LiJung
źródło
7
Czy używałeś sudo podczas uruchamiania dokera -d?
Ben Whaley
Zauważam, że w błędzie jest napisane no such file or directory[/var/lib/docker|2462000b]. Czy /var/lib/dockeristnieje w twoim systemie? Jeśli nie, to myślę, że musisz ponownie zainstalować Docker.
Ben Whaley
3
Mam ten sam problem (nie mogę połączyć się z demonem, który pokazuje, że ps nadal działa), z tym wyjątkiem, że podczas uruchamiania demona nie otrzymuję żadnych komunikatów „nie znaleziono pliku”. / var / lib / docker istnieje.
Jonathan Hartley
Czy używasz dokera na VPS?
pigletfly
Zainstaluj tutaj pulpit dokera, rozwiąże to. docs.docker.com/docker-for-mac/install
Guy Assaf

Odpowiedzi:

642

Linux

Te kroki po instalacji Linuksa dokumentacji ujawnia następujące kroki:

  1. Utwórz grupę dokerów .
    doker sudo groupadd
  2. Dodaj użytkownika do grupy dokerów .
    sudo usermod -aG docker $ (whoami)
  3. Wyloguj się i zaloguj ponownie, aby upewnić się, że doker działa z prawidłowymi uprawnieniami.
  4. Uruchom okno dokowane.
    uruchomienie dokera usługi sudo

Mac OS X

Jak mówi Dayel Ostraco , konieczne jest dodanie zmiennych środowiskowych:

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

docker-machine startKomenda wysyła komentarze do prowadzenia procesu.

molavec
źródło
Tak. To był dla mnie problem. Dodałem mojego użytkownika do grupy dokerów i teraz mogę połączyć się z demonem. Dzięki
Bogdan,
FWIW, link do konkretnej sekcji jest taki
asymetryczny
20
Jeśli z jakiegoś powodu nie chcesz się wylogowywać, możesz użyć newgrppolecenia, aby uruchomić nową powłokę w tej nowej grupie. Tak: newgrp docker.
Denilson Sá Maia
sudo chown $ USER: $ USER / path / to / docker / binary
Ivor Scott
Nie miałem czasu na ponowne uruchomienie bash. Tak alias docker='sudo docker'jak i sztuczka. : p
LovaBill
149

Linux

Aby uruchomić demona dokera w systemie Linux (z interfejsu CLI ), uruchom:

$ sudo service docker start # Ubuntu/Debian

Uwaga: pomiń $znak podczas kopiowania i wklejania.

Na RedHat / CentOS, uruchom: sudo systemctl start docker.

Aby zainicjować „podstawowy” system plików, uruchom:

$ sudo service docker stop
$ sudo rm -rf /var/lib/docker
$ sudo service docker start

lub ręcznie jak:

$ sudo docker -d --storage-opt dm.basesize=20G

Zainstaluj docker-machinew systemie Linux

Aby zainstalować pliki binarne komputera w systemie Linux:

  • lokalnie:

    install -vm755 <(curl -L https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) $HOME/bin/docker-machine
    
  • światowy:

    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'
    

System operacyjny Mac

W systemie macOS dockerplik 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.

Zainstaluj docker-machinew systemie macOS

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

  • Korzystanie Brew komendę: brew install docker-machine docker.
  • ręcznie z GitHub :

    install -v <(curl https://github.com/docker/machine/releases/download/v0.5.3/docker-machine_linux-amd64) /usr/local/bin/docker-machine
    

Zobacz: Rozpocznij pracę z Docker na Maca .

Skonfiguruj docker-machinew systemie macOS

Zacząć Docker Machine przez Homebrew, uruchom:

brew services start docker-machine

Stworzyć default maszynę (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ą .


zainstalować Docker.app na macOS

Alternatywnie do powyższego rozwiązania możesz zainstalować aplikację Docker poprzez:

brew cask install docker

Sprawdź ten post, aby uzyskać więcej informacji . Zobacz także: Nie można połączyć się z demonem Docker w systemie macOS

kenorb
źródło
1
start dokera usługi sudo działa z Docker 1.9.1 na Ubuntu 14.04
dzięki. to działało dla mnie na Ubuntu 14.04. wszystko inne zawiodło.
nyxee
To jedyna rzecz, która działała dla mnie w systemie Mac OSX ze sprzętem starszym niż 2010. Musiałem zainstalować docker-toolboxz docs.docker.com/toolbox/toolbox_install_mac
Vikram
2
Musiałem zainstalować komponent dokera, maszynę dokera i doker za pośrednictwem Homebrew, a następnie działało dobrze!
Entalpi
Miałem ten problem na CentOS 7.6 z dokerem 18, sudo rm -rf /var/lib/dockera następnie ponowne załatwienie załatwiło sprawę . Naprawdę utknąłem i żadne inne rozwiązanie nie działało dla mnie.
Ashkan
142

Jeśli korzystasz z Dockera w systemie OS X, uruchomienie następującej wersji działało dla mnie.

eval "$(docker-machine env default)"

Jeśli nie chcesz uruchamiać tej instrukcji eval przy każdej sesji terminalu, możesz dodać ją do bash_profile:

#Docker
eval "$(docker-machine env default)"

Należy zrestartować sesję terminalową lub uruchomić źródło, bash_profileaby zmiany odniosły skutek.

Dayel Ostraco
źródło
3
To samo tutaj, jeśli spróbuję tego sam, często dostaję Error checking TLS connection: Host is not running... uruchomienie tego eval po tym, jak polecenie docker-machine start defaultwykonało polecenie .
Emilio Ferrucci
100

Po szczegółowym badaniu wydaje się, że ten problem występuje za każdym razem po ponownym uruchomieniu systemu Mac OS X. ponownym uruchomieniu (lub maszyny wirtualnej Docker), co uniemożliwia klientowi Docker połączenie się z demonem Docker.

Aby rozwiązać problem, możesz:

A) Zainstaluj ponownie Docker Toolbox za pomocą oficjalnego instalatora ( https://www.docker.com/products/docker-toolbox ) lub po prostu

B) Uruchom następujące polecenia w kolejności:

# 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) Tak samo jak (B), możesz również skopiować i wkleić następujący wiersz, aby uruchomić wszystkie trzy polecenia:

docker-machine start default; docker-machine regenerate-certs default; eval "$(docker-machine env default)"

W przypadku pojawienia się następującego błędu:

Error getting SSH command: Something went wrong running an SSH command!
command : cat /etc/os-release
err     : exit status 255
output  :

po prostu ponownie uruchom trzy polecenia innym razem i powinno działać za drugim razem.

KAD
źródło
6
Dostaję Host nie istnieje: „default”
Roman Gaufman
@RomanGaufman: czy to działa dla Ciebie: domyślnie start maszyny dokującej?
KAD
1
@RomanGaufman Musiałem zrestartować terminal, zanim polecenie wykonało się pomyślnie.
anon58192932
jest to spowodowane tym, że ip wirtualnego vm box zmienia się przy każdym ponownym uruchomieniu komputera Mac?
Cui Pengfei -
@ Błąd RomanGaufmana został rozwiązany przez odpowiedź (obecnie) poniżej: stackoverflow.com/a/34887761/634576
Dave Schweisguth
47

Zwykle dzieje się tak, gdy nie ma Cię w dockergrupie. Możesz dodać się do dockergrupy za pomocą:

sudo usermod -aG docker yourusername

lub

sudo usermod -aG docker $(whoami)

Następnie musisz się wylogować i zalogować ponownie na serwerze.

Alternatywnie możesz wykonać sudokażdą komendę Docker.

nPcomp
źródło
5
a jeśli grupa nie istnieje: doker sudo groupadd
izy
30

Jeśli wszystkie inne powyższe rozwiązania nie działają, możesz spróbować sprawdzić własność /var/run/docker.sock:

ls -l /var/run/docker.sock

Jeśli nie jesteś właścicielem, zmień własność za pomocą polecenia:

sudo chown *your-username* /var/run/docker.sock

Następnie możesz bezproblemowo wykonać polecenia Docker: D

kevthanewversi
źródło
1
Zacząłem od tej odpowiedzi, która pomogła mi!
Andrzej Martyna
2
Problem z tym podejściem polega na tym, że musisz powtarzać ten krok za każdym razem, gdy demon jest restartowany
MFIhsan
Cześć @MFIhsan. Inteligentny administrator systemu powiedziałby, aby po prostu utworzyć skrypt bash tych poleceń i dodać go do crontab, aby uruchomił się przy ponownym uruchomieniu / uruchomieniu, jak wyjaśniono tutaj> stackoverflow.com/a/29247942/3469960
kevthanewversi
Zwykły użytkownik nigdy nie powinien mieć skarpety! Jeśli nie jesteś właścicielem skarpety, upewnij się, że jesteś w grupie kół i grupie, do której należy skarpeta ... a nie w grupie właścicieli skarpet!
CrazyMerlin,
16

Najlepszym sposobem, aby dowiedzieć się, dlaczego Docker nie działa, jest ręczne uruchomienie demona.

$ sudo service docker stop
$ ps aux | grep docker  # do this until you don't see /usr/bin/docker -d
$ /usr/bin/docker -d

Demon Docker loguje się do STDOUT, więc zacznie wypluwać wszystko, co robi.

Oto mój problem:

[8bf47e42.initserver()] Creating pidfile
2015/01/11 15:20:33 pid file found, ensure docker is not running or delete /var/run/docker.pid

Stało się tak, ponieważ instancja została sklonowana z innej maszyny wirtualnej. Musiałem tylko usunąć plik pid i wszystko działało później.

Oczywiście, zamiast ślepo zakładać, że to zadziała, sugeruję jeszcze raz uruchomić ręcznie demona i przejrzeć dane wyjściowe dziennika pod kątem innych błędów przed ponownym uruchomieniem usługi.

Robert Elwell
źródło
1
To także pomogło mi znaleźć problem (niestety później zobaczyłem twoją odpowiedź). Mój był brakującym apparmorpakietem.
Pierre de LESPINAY,
To rozwiązanie działało dla mnie. Po usunięciu /var/run/docker.pid w końcu mogłem uruchomić dokera.
jirikadlec2
3
Ostrzeżenie: „-d” jest przestarzałe, zostanie wkrótce usunięte. Zobacz użycie. OSTRZEŻENIE [0000] użyj zamiast tego „demona dokera”.
juanmf
3
flaga podana, ale nie zdefiniowana: -d
Luís de Sousa
Aby ręcznie uruchomić demona dokera w najnowszych wersjach z włączonym debugowaniem, użyj:dockerd -D
Luis Miguel Serrano
14

Jeśli otrzymasz wiadomość Can't connect to docker daemon. Is 'docker -d' running on this host?, możesz to sprawdzić przez docker version.

Jeśli zobaczysz informację, że uruchomiony jest klient Docker. ale Docker Server nie jest , oczywiście musisz uruchomić serwer Docker.

W CentOS możesz użyć servicedo uruchomienia lub zatrzymania serwera Docker.

$ sudo service docker stop
$ sudo service docker start

Następnie po wpisaniu docker versionotrzymasz informacje o Docker Client i Docker Server , a demon Docker został uruchomiony.

Shawn Wang
źródło
2
sudo service docker startpracował również dla mnie na Ubuntu 14.04.
funroll
Cent os 7, muszę to robić za każdym razem, gdy uruchamiam dokera.
Paddy
@Paddy Musisz włączyć usługę po jej stwierdzeniu, a uruchomi się, jeśli system zostanie uruchomiony i pozostanie uruchomiony w tle.
CrazyMerlin,
Wszystkie te odpowiedzi, które mówią: „Musisz uruchomić sudo systemctl start docker” zawsze zakładają, że istnieje usługa docker do uruchomienia. Jeśli wystąpiły jakiekolwiek problemy z instalacją dokera, plik konfiguracyjny usługi może nawet nie istnieć, w takim przypadku otrzymasz: „Jednostka dokowana jednostka. Usługa nie załadowana”
CrazyMerlin
12

Wykonaj a, ps aux | grep dockeraby sprawdzić, czy demon działa. Jeśli nie uruchom/etc/init.d/docker start

Reza S.
źródło
5
Mam ten sam problem. „ps” pokazuje, że mój proces dokera nadal działa.
Jonathan Hartley
zatrzymanie i uruchomienie dokera (który już działał) wyprostowało mnie.
kyle
14
sudo service docker startmówi mi „docker start / running, process 4633”, a następnie sudo service docker statusmówi „docker stop / waiting”
Pierre de LESPINAY
12

Ponownie uruchamiam Dockera po jego instalacji:

$ sudo service docker stop
$ sudo service docker start

I to działa.

Galera
źródło
9

Mam podobny problem. Musiałem się wylogować i zalogować ponownie do powłoki, ponieważ właśnie zainstalowałem Docker i następujące polecenie nie pojawiło się w moim środowisku.

export DOCKER_HOST=127.0.0.1:4243 >> ~/.bashrc
kayn
źródło
3
Po prostu musiałem się wylogować i zalogować ponownie. Wszystko naprawione!
Mark Shust w M.academy
To rozwiązało mój problem! Używam Ubuntu 16.04 jako WSL. Jedyną rzeczą, którą musiałem zmienić, był domyślny numer portu: export DOCKER_HOST = 127.0.0.1: 2375 >> ~ / .bashrc
Alex
9

Napotkałem ten problem i ponownie uruchomiłem Docker za pomocą następujących poleceń:

$ sudo service docker stop
$ sudo service docker start

Ale nie rozwiązałem mojego problemu, ponieważ zapomniałem wykonać polecenia Dockera bez sudo. Dla tych, którzy napotykają ten problem, spróbuj to sprawdzić.

Próbować

$ sudo docker info

zamiast tego:

$ docker info
Taha Emara
źródło
To był dokładnie mój problem podczas próby uruchomienia docker buildna Ubuntu Xenial.
ashnazg
9

Możesz użyć polecenia

sudo service docker stop && sudo service docker start

po prostu zacząć.

kvadityaaz
źródło
3
Lub sudo service docker restartłatwiej 😊
fr1sk
8

Mam ten sam błąd i próbuję docker-machine regenerate-certslub eval..nie działało dla mnie.

Dotyczy to OS X 10.11.3 (El Capitan) i Docker v1.10.1. Udało mi się to naprawić tylko poprzez ponowne usunięcie i ponowne utworzenie maszyny dokującej. Źródło

Jeśli jest uruchomiony docker-machine ls, pokazuje wyniki podobne do poniższych;

DOKER

Nieznany

BŁĘDY

Nie można wysłać zapytania o wersję dokera: Nie można połączyć się z punktem końcowym silnika dokera

Spróbuj usunąć urządzenie Docker za pomocą;

docker-machine rm -f default

Gdzie defaultjest nazwa twojego urządzenia Docker. Następnie;

docker-machine create -d virtualbox default

Tworzy nową maszynę Docker.

Sprawdź dokładnie, czy wszystko wygląda teraz normalnie (bez błędów lub nieznanego dokera) za pomocą:

docker-machine ls

Wreszcie nie zapomnij uruchomić, "$(docker-machine env default)"zanim przejdziesz dalej lub uruchom terminal Docker Quickstart, który zrobi to za Ciebie ...

Kerem
źródło
6

Miałem ten sam problem - „Nie można połączyć się z demonem dokera”. (z wyjątkiem tego, że nie wystąpiły błędy „nie znaleziono pliku” podczas próby uruchomienia serwera).

„ps” pokazuje, że „/ usr / bin / docker -d” wciąż działa

Zdałem sobie sprawę, że tak naprawdę nigdy nie udało mi się uruchomić serwera. Każda próba się powiodła

...
2014/03/24 21:57:29 pid file found, ensure docker is not running or delete /var/run/docker.pid

Więc z opóźnieniem zdałem sobie sprawę, że instalacja dokera może zarejestrowała demona przy starcie, co mnie uruchomiło. Dlatego próba zabicia demona w celu ręcznego ponownego uruchomienia go kończy się niepowodzeniem (operacja niedozwolona). Więc zrobiłem

sudo kill -9 <PID>

w procesie demona. Kolejny demon natychmiast zajął jego miejsce, a ten nowy NIE pozwala teraz mojemu klientowi CLI połączyć:

$ 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
Jonathan Hartley
źródło
6

Spróbuj dodać bieżącego użytkownika do dockergrupy:

sudo usermod -aG docker $USER

Następnie wyloguj się i zaloguj.

dormi330
źródło
6

Użyj aplikacji Docker CE

System operacyjny Mac

Użyj nowej aplikacji Docker Community Edition dla systemu macOS. Na przykład:

  1. Odinstaluj wszystkie dotychczas zainstalowane pakiety Docker Homebrew:

    brew uninstall docker-compose
    brew uninstall docker-machine
    brew uninstall docker
    
  2. Zainstaluj aplikację ręcznie lub przez Homebrew-Cask :

    brew cask install docker
    

    Uwaga: Ta aplikacja stworzy niezbędne linki do docker, docker-compose, docker-machine, itd.

  3. Po uruchomieniu aplikacji sprawdź ikonę wieloryba Docker w menu stanu.

  4. Teraz powinieneś być w stanie wykorzystać docker, docker-compose, docker-machinepolecenia, jak zwykle w Terminalu .

Związane z:

Linux / Windows

Pobierz Docker CE ze strony pobierania i postępuj zgodnie z instrukcjami.

kenorb
źródło
Uwaga 2018-5-20: aplikacja Docker CE na macOS jest dość gówniana. za każdym razem, gdy go otwieram, po prostu zamraża się, nie mogę nic zrobić. Próbowałem Google i naprawiłem problem, do tej pory nadal nad nim
pracuję
1
To jest poprawna odpowiedź na zgłoszony problem, dziękuję!
paranza
6

Wiedziałem, że w tym poście jest już wiele odpowiedzi. Chciałbym tylko dodać jedną prostą odpowiedź, która rozwiązuje wyżej wspomniany problem.

sudo systemctl start docker

Uruchom powyższe polecenie, aby uruchomić wszystkie wątki / usługi związane z dokerem.

Prakasam Dhamodhiran
źródło
5

Właśnie miałem ten sam problem, działając na Amazon AWS .

Oto, co próbowałem:

  • Skonfiguruj docker-machinelokalnie za pomocą już istniejącej instancji AWS
  • Zastosowano ogólną konfigurację
  • W pewnym sensie jest podłączony, ale ponieważ port zdalny został zamknięty, nie udało się
  • Następnie demon Docker odmówił uruchomienia, ale uruchomienie dockerddziałało ...

Został przetestowany na zdalnym komputerze:

service docker start # Also restart, no success
systemctl start docker # Also restart, no success
dockerd # Success

Usunąłem /var/lib/dockeri odinstalowałem wszystko, ale po ponownej instalacji nie powiodło się. Niestety nie mam zapisanych dzienników błędów, ale docker.servicepo prostu odmówiłem uruchomienia.

Jednak ostatecznie rozwiązałem mój problem:

sudo usermod -aG docker $(whoami)
Deko
źródło
4

Następująca witryna DOC Dockera: Zarządzaj Dockerem jako użytkownik inny niż root

1) Utwórz grupę dokerów

sudo groupadd docker 

2) Ustaw użytkownika w grupie dokerów, aby uzyskać uprawnienia grupy.

sudo usermod -aG docker $USER

Sprawdź, czy zmienna środowiskowa DOCKER_HOST jest ustawiona dla twojej powłoki.

env | grep DOCKER_HOST

Jeśli istnieje

unset DOCKER_HOST

To powinno działać:

docker run hello-world
blasrodri
źródło
1
jesteś unset DOCKER_HOSTdla mnie
ratownikiem
4

Jeśli korzystasz z systemu OS X za pomocą narzędzia Docker, wykonaj następujące czynności.

Uruchom ponownie demona i skonfiguruj środowisko:

docker-machine restart

I wtedy

docker-machine env

Wreszcie,

eval $(docker-machine env)

Aby przetestować działanie demona:

docker ps -alub docker-machine ls. Spowoduje to wyświetlenie listy wszystkich kontenerów.

Ermias K
źródło
2

Mam ten sam problem. W CentOS 6.5:

ps aux |grep `cat /var/run/docker.pid`

Jeśli pokazuje, że nie istnieje proces demona Dockera, wtedy wpisuję:

docker -d

Następnie Ctrl+, Daby zatrzymać Dockera. Ponieważ korzystamy z tej -dopcji, Docker będzie działał jako demon. Teraz możemy zrobić:

service docker start

Potem mogę zrobić docker pull centos . To wszystko.

UWAGA: Jeśli te nie działają, możesz spróbować yum update, a następnie powtórzyć je ponownie, ponieważ ja yum installprzed nimi.

wuranbo
źródło
2

Usługa Docker może nie być uruchomiona.

Jeśli korzystasz z RedHat / Fedora / CentOS, spróbuj tego:

sudo systemctl start docker

Jeśli korzystasz z systemu Ubuntu / Debian:

sudo service start docker

Docker zacznie działać na twoim hoście i odpowiednim porcie.

Aamir M. Meman
źródło
1

Sprawdź, czy korzystasz z Docker Machine :)

Uruchom docker-machine env defaultpowinien załatwić sprawę.

Ponieważ zgodnie z dokumentacją:

Docker Machine to narzędzie, które pozwala zainstalować Docker Engine na wirtualnych hostach i zarządzać nimi za pomocą docker-machinepoleceń. Możesz używać Machine do tworzenia hostów Docker na lokalnym komputerze Mac lub Windows, w sieci firmowej, w centrum danych lub u dostawców usług chmurowych, takich jak AWS lub Digital Ocean.

Za pomocą docker-machinekomend można uruchamiać, sprawdzać, zatrzymywać i ponownie uruchamiać zarządzanego hosta, aktualizować klienta i demona Docker oraz konfigurować klienta Docker do komunikowania się z hostem.

Skieruj CLI maszyny na działający, zarządzany host, a będziesz mógł uruchamiać dockerpolecenia bezpośrednio na tym hoście. Na przykład uruchomić docker-machine env defaultdo punktu z hostem o nazwie default, postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby zakończyć envkonfigurację i uruchomić docker ps, docker run hello-worldi tak dalej.

https://docs.docker.com/machine/overview/

Kok
źródło
1
  1. Też miałem ten sam problem. Problem polegał na gniazdach przydzielonych do demona-dokera i klienta-dokera.
  2. Po pierwsze, nie ustawiono uprawnień dla klienta-dokera na docker.sock. Można to ustawić za pomocą „sudo usermod -aG docker $ USER”
  3. Następnie sprawdź plik bash, w którym działa klient-doker. Dla mnie był on w wersji 0.0.0.0:2375, podczas gdy demon-doker działał na gnieździe unix (ustawiono go w pliku konfiguracyjnym dockerd).
  4. Po prostu skomentuj linię bash, a będzie działać dobrze.
  5. Ale jeśli chcesz, aby działał na porcie TCP zamiast na gnieździe unixowym, zmień plik konfiguracyjny dockerd i ustaw go na 0.0.0.0.2375 i trzymaj linię bash taką, jaka jest, lub ustaw ją na 0.0.0.0: 2375.
Nilesh Kande
źródło
1

Aby to naprawić, musisz wydać następujące polecenia w terminalu. Wytłumaczę każdy krok:

# 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/*

Teraz, jeśli chcesz uprościć sprawy i uzyskać więcej czasu, możesz uruchomić mój initskrypt za pomocą parametru 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

Ponowne uruchomienie jest opcjonalne, ale sugeruję, aby to zrobić, aby upewnić się, że wszystko działa płynnie.

Daniel Andrei Mincă
źródło
1

Miałem ten sam problem z uruchomieniem Docker 1.10 na Ubuntu 14.04 i żadna z podanych odpowiedzi nie zadziałała. Dla mnie poprawką było określenie sterownika pamięci podczas uruchamiania demona Docker.

sudo docker daemon --storage-driver=devicemapper
Yatit Thakker
źródło
1

Jeśli korzystasz z gitlab-ci / gitlab-runners, ten błąd występuje, jeśli nie masz uprawnień dostępu /var/run/docker.sock.

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock

Rozwiązać problem:

sudo usermod -aG docker gitlab-runner

Zweryfikuj za pomocą:

sudo -u gitlab-runner -H docker info

Mam nadzieję, że to pomaga.

Tobias Ernst
źródło
0

Jeśli regenerowanie certyfikatów TLS nie działa

docker-machine regenerate-certs default

Spróbuj ponownie uruchomić maszynę dokującą i ustawić zmienną env:

docker-machine restart default
eval $(docker-machine env default)

Sprawdź, czy maszyna działa z:

docker-machine ls

lub alternatywnie

docker run hello-world

To zadziałało dla mnie. Jeśli jednak nadal nie masz uruchomionego demona, strona rozwiązywania problemów Dockera szczegółowo opisuje proces zatrzymywania, usuwania i tworzenia nowego komputera.

nikheel
źródło
0

Pojawił się również problem „Nie można połączyć się z demonem Docker. Czy demon dokera działa na tym hoście?”.

Zapomniałem użyć sudo. Mam nadzieję, że pomoże to niektórym z nas.

$:docker images
Cannot connect to the Docker daemon. Is the docker daemon running on this host?

$:sudo docker images
REPOSITORY   TAG   IMAGE ID   CREATED   SIZE
Habeeb Perwad
źródło