Chcę przeprowadzić się do Dockera, więc zacząłem się z tym bawić. Zainstalowałem Docker na instalacji VirtualBox Ubuntu 15.10 (Wily Werewolf) i zgodnie z sugestią tutaj próbowałem uruchomić podstawowy obraz Docker nginx :
$ docker run --name mynginx1 -P -d nginx
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Sprawdziłem więc, czy Docker działa:
$ sudo service docker status
● docker.service - Docker Application Container Engine
Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
Active: active (running) since vr 2015-11-06 08:41:48 CET; 15min ago
Docs: https://docs.docker.com
Main PID: 7542 (docker)
CGroup: /system.slice/docker.service
└─7542 /usr/bin/docker daemon -H fd://
nov 06 08:41:47 kramer65-VirtualBox systemd[1]: Starting Docker Application Container Engine...
nov 06 08:41:47 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:47.900410966+01:00" level=info msg="API ...ock"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.033514149+01:00" level=info msg="Fire...lse"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.141594321+01:00" level=info msg="Defa...ess"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.416294436+01:00" level=warning msg="Y...it."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.565507576+01:00" level=info msg="Load...rt."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567907022+01:00" level=info msg="Load...ne."
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567945214+01:00" level=info msg="Daem...ion"
nov 06 08:41:48 kramer65-VirtualBox docker[7542]: time="2015-11-06T08:41:48.567969891+01:00" level=info msg="Dock....9.0
nov 06 08:41:48 kramer65-VirtualBox systemd[1]: Started Docker Application Container Engine.
Hint: Some lines were ellipsized, use -l to show in full.
To sugeruje, że demon Dockera faktycznie już działa, ale dla pewności właśnie uruchomiłem demona Dockera ręcznie:
$ sudo docker daemon
INFO[0000] API listen on /var/run/docker.sock
INFO[0000] [graphdriver] using prior storage driver "aufs"
INFO[0000] Firewalld running: false
INFO[0000] Default bridge (docker0) is assigned with an IP address XXX.XX.X.X/XX. Daemon option --bip can be used to set a preferred IP address
WARN[0000] Your kernel does not support swap memory limit.
INFO[0000] Loading containers: start.
INFO[0000] Loading containers: done.
INFO[0000] Daemon has completed initialization
INFO[0000] Docker daemon commit=76d6bc9 execdriver=native-0.2 graphdriver=aufs version=1.9.0
Następnie spróbowałem ponownie uruchomić obraz, ale z tym samym rezultatem:
$ docker run --name mynginx1 -P -d nginx
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Próbowałem sudo'ować polecenie, ale bezskutecznie. Co ja tu robię źle?
Odpowiedzi:
Musisz dodać bieżącego użytkownika do grupy dokerów w następujący sposób:
następnie wyloguj się i zaloguj ponownie do systemu lub uruchom ponownie system. test przez
docker version
Aby uzyskać więcej informacji na temat instalacji silnika dokera, postępuj zgodnie z dokumentacją dokera
źródło
Cannot connect to the Docker daemon. Is the docker daemon running on this host?
Dodaj użytkownika do grupy dokerów
Dodaj grupę dokerów, jeśli jeszcze nie istnieje:
sudo groupadd docker
Dodaj podłączonego użytkownika „$ {USER}” do grupy dokerów:
sudo gpasswd -a ${USER} docker
Uruchom ponownie demona Docker:
sudo service docker restart
Wykonaj a
newgrp docker
lub wyloguj się / zaloguj, aby aktywować zmiany w grupach.źródło
newgrp docker
to, że jest lokalny dla powłoki, a nie sesji logowania. Nie jest to wcale jasne ze strony podręcznika.Zwykle podstęp wykonuje następujące polecenie:
To zamiast
docker start
przypadków, w których Docker wydaje się już działać.Jeśli to zadziała, to zgodnie z sugestią i inną odpowiedzią oraz w sprawie GitHub , jeśli nie dodałeś się do grupy dokerów, zrób to, uruchamiając:
I najprawdopodobniej dobrze jest iść.
Tak jak w przypadku innych osób wpadających na to, w oknie dokowanym niektórych systemów operacyjnych nie uruchamia się bezpośrednio po ich zainstalowaniu, w wyniku czego
can't connect to daemon message
pojawia się to samo . W takim przypadku możesz najpierw sprawdzić, czy Docker rzeczywiście nie działa, sprawdzając status usługi dokowania, wykonując:Jeśli dane wyjściowe wyglądają mniej więcej tak:
docker stop/waiting
zamiastdocker start/running, process 15378
tego oznacza to oczywiście, że Docker nie jest aktywny. W takim przypadku upewnij się, że zaczynasz od:I, jak poprzednio, najprawdopodobniej będziesz dobrze iść.
źródło
uwaga do siebie: otrzymuję błąd z tytułu pytania, gdy zapomnę uruchomić
docker
polecenie zsudo
:sudo docker run ...
[Ubuntu 15.10]
źródło
Miałem ten sam problem i działało dla mnie:
Sprawdzanie własności /var/run/docker.sock
Jeśli nie jesteś właścicielem, zmień własność za pomocą polecenia
Następnie możesz bezproblemowo wykonać polecenia dokera: D
źródło
root
ale wdocker
grupie. Prawidłowe podejście polega na przypisaniu bieżącego użytkownika dodocker
grupy, zgodnie z dokumentacją Dockera:sudo groupadd docker && sudo usermod -aG docker $USER
Po zainstalowaniu wszystkiego i uruchomieniu usługi spróbuj zamknąć terminal i otwórz go ponownie, a następnie spróbuj pobrać obraz
Edytować
Znowu miałem ten problem , jeśli powyższe rozwiązanie nie zadziała, wypróbuj to rozwiązanie, które jest poniżej
Uwagi
Jeśli powyższe polecenie działa, prawdopodobnie masz problemy z dokerem sieciowym, to i tak to rozwiązuje, aby to potwierdzić, zobacz dziennik z poniższym poleceniem
Jeśli dane wyjściowe mają coś takiego
Naprawdę masz problemy z siecią, jednak nie wiem jeszcze, czy przy następnym uruchomieniu ( aktualizacja , 2 miesiące bez problemu ponownie) Twój system operacyjny ponownie dostanie ten problem i czy jest to błąd lub problem z instalacją
Moja wersja dokera
źródło
Po zainstalowaniu dokera w systemie Ubuntu uruchomiłem następujące polecenie:
Próbowałeś tego?
źródło
Miałem ten sam problem. Przez dwa dni walczyłem o rozwiązanie tego problemu.
Działało tylko wtedy, gdy:
Zgodnie z samouczkiem Dockera musisz dodać klucz Docker, jeśli nie został jeszcze dodany przy użyciu:
$ sudo wget -qO- https://get.docker.com/gpg | sudo apt-key add -
Następnie upewnij się, że przyznajesz sobie uprawnienia dokera, używając:
$ sudo usermod -aG docker $USER
Mam nadzieję, że to również pomoże.
źródło
sudo usermod -aG docker $USER
wpisz jako root (
sudo su
) i spróbuj tego:Mam tutaj ten sam problem, a polecenie dokera działało tylko jako root, a także z tym
DOCKER_HOST
pustymPS: strzeż się również, że poprawnym i oficjalnym sposobem instalacji na Ubuntu jest korzystanie z ich apt apt (nawet 15.10), a nie z tym „ wget ”.
źródło
W przypadku OSX :
Po otwarciu okna dokowanego i uruchomieniu „domyślnej” maszyny za pomocą Quickstart Terminal ( https://docs.docker.com/engine/installation/mac/ ) wypróbowujesz polecenia dokera i pojawia się komunikat „Nie można połączyć się z demonem dokera” , okazuje się, że potrzebujesz kilku zmiennych env :
eval "$(docker-machine env default)"
Następnie wypróbuj to,
docker run hello-world
aby sprawdzić, czy wszystko jest brzoskwiniowe.źródło
Dla tych, którzy już próbowali zrestartować komputer, rozbrojenie zmiennej środowiskowej DOCKER_HOST, jak opisano w dokumentacji env dokera, a cała reszta po prostu spróbuje użyć
Tylko to załatwiło sprawę nawet po ponownym uruchomieniu komputera.
źródło
Udzielanie dostępu użytkownika innego niż root - z okna dokowanego
Dodaj grupę dokerów, jeśli jeszcze nie istnieje.
Dodaj podłączonego użytkownika „$ {USER}” do grupy dokerów.
Zmień nazwę użytkownika, aby pasowała do preferowanego użytkownika.
Może być konieczne wylogowanie się i ponowne zalogowanie, aby to zadziałało.
Uruchom ponownie demona Docker.
źródło
To pytanie jest obecnie numerem 3 w wyszukiwarce Google. Po przeprowadzeniu badań nad rozwiązaniem tego problemu na moim systemie Linux pomyślałem, że napiszę tę odpowiedź. Oryginalny post mówi, że problem dotyczy Ubuntu, ale ja również doświadczyłem problemu przy użyciu Fedory. Mając to na uwadze, oto, co zrobiłem, aby rozwiązać problem.
W Fedorze 22
Instalowanie Dockera:
Po zainstalowaniu Dockera:
Użytkownik musi zostać dodany do grupy dokerów.
Demon dokera musi zostać uruchomiony
Możesz ustawić demona, aby uruchamiał się przy starcie systemu
Możesz sprawdzić, czy usługa dokowania jest uruchomiona
I ostatnia kontrola końcowa
źródło
dockerroot
. Ponadto prawdopodobnie chcesz go zainstalować z repozytorium (zamiastcurl ... | sh
), aby można go było później zaktualizować:dnf install docker
groupadd docker
a następnie dodać do nazwy użytkownikasudo usermod -aG docker your_username
Spróbuj użyć „sudo” z uruchomionym poleceniem.
źródło
Mam ten sam problem podczas uruchamiania dokera.
możesz uruchamiać polecenia jako użytkownik sudo :
źródło
W przypadku systemu Ubuntu:
Zdarzyło mi się, gdy zaktualizowałem dokera.
Musisz zdemaskować usługę i gniazdo, a następnie ponownie uruchomić usługę.
Dla mnie działało:
To, co dzieje się za kulisami
systemu, ma również możliwość oznaczenia jednostki jako całkowicie niemożliwej do uruchomienia, automatycznie lub ręcznie, poprzez połączenie jej z / dev / null. Nazywa się to maskowaniem jednostki i jest możliwe dzięki poleceniu maskowania.
Możesz sprawdzić listę zamaskowanych usług, używając:
Aby włączyć automatyczne / ręczne uruchomienie usługi, należy ją zdemaskować za pomocą:
Teraz usługa zostanie włączona, jak pokazano poniżej
źródło
Ponieważ okno dokowane łączy się z gniazdem unix, którego właścicielem jest root podczas uruchamiania, będzie działać „sudo” wraz z poleceniami dokera.
źródło
źródło
Być może to pomoże komuś, ponieważ komunikat o błędzie jest bardzo nieprzydatny, a ja wiele razy przeszedłem wszystkie standardowe kroki zezwolenia, ale bezskutecznie.
Docker od czasu do czasu pozostawia zmienne środowiskowe-duchy, które blokują dostęp, pomimo tego, że Twój system byłby poprawnie skonfigurowany. Następujące polecenia powłoki mogą uczynić go ponownie dostępnym, jeśli miałeś go w jednym momencie i po prostu przestał współpracować po ponownym uruchomieniu:
Miałem wcześniej działającą instalację dokera, a po ponownym uruchomieniu laptopa po prostu odmówił pracy. Został poprawnie dodany do grupy użytkowników doker, miał odpowiednie uprawnienia na gnieździe, etc, ale nadal może nie działać
docker login
,docker run ...
itp to ustalone to dla mnie. Niestety muszę to uruchamiać przy każdym ponownym uruchomieniu. Jest to wspomniane w kilku problemach z githubem również jako obejście, chociaż wydaje się, że jest to błąd, że jest to trwała bariera dla poprawnego działania Dockera (uwaga: korzystam z Arch Linux, nie OSX, ale był to ten sam problem dla mnie).źródło
Testowane w Ubuntu 16.04
źródło
Napotkałem ten sam błąd w instancji Amazon EC2. Problem został naprawiony po ponownym uruchomieniu instancji.
źródło
Dodaj bieżącego użytkownika do grupy dokerów:
sudo usermod -aG docker $(whoami)
źródło
--
) wersji opcji.Dla Ubuntu 16.04
/lib/systemd/system/docker.service
Zmiana pliku wewnątrz :z:
/etc/init.d/docker
Zmiana pliku wewnątrz :z:
a następnie uruchom ponownie komputer.
źródło