Gdy zobaczysz komunikat o błędzie „Nie można połączyć demona Docker z 'unix:///var/run/docker.sock'Zwykle oznacza to, że polecenia takie jak `docker run` lub `docker ps` nie będą działać. W rezultacie nie można wchodzić w interakcję z kontenerami Dockera. Ten błąd występuje, ponieważ klient Dockera nie może połączyć się z demonem Dockera, czyli programem bazowym obsługującym wszystkie operacje Dockera na komputerze.

Błąd połączenia z Dockerem

Najczęstszą przyczyną tego problemu jest brak uruchomienia usługi Docker w systemie. Inne możliwe przyczyny to brak niezbędnych uprawnień dostępu do gniazda Docker, problemy z instalacją Dockera lub problemy z samym plikiem `docker.sock`.

Teraz, gdy już wiesz, jakie są możliwe przyczyny, możemy przejść do praktycznych rozwiązań.

1. Uruchom usługę Docker za pomocą systemctl

Pierwszą rzeczą do sprawdzenia jest to, czy Docker jest uruchomiony. Narzędzie `systemctl` umożliwia uruchamianie i zarządzanie usługami systemowymi. Jeśli Docker nie jest aktywny, klient Dockera nie może komunikować się z głównym procesem Dockera, co powoduje ten błąd. Uruchomienie polecenia `systemctl start docker` spowoduje uruchomienie usługi Dockera i powinno rozwiązać problem, jeśli jest ona po prostu nieaktywna.

  1. Otwórz terminal Najpierw uruchom następujące polecenie, aby Odkryj Doker:
    sudo systemctl unmask docker

    Jeśli spróbujesz uruchomić Dockera, gdy jest on zamaskowany, zobaczysz błąd „Nie udało się uruchomić docker.service: Jednostka jest zamaskowana”. Maskowanie to skuteczniejszy sposób zatrzymania usługi – uniemożliwia jej całkowite uruchomienie. Aby zobaczyć stan wszystkich plików jednostki w systemie, użyj [nazwa metody/nazwa narzędzia]. systemctl lista-plików-jednostek.

  2. Gdy Docker stanie się Nieukryte, możesz Uruchom demona Docker Po użyciu tego polecenia demon Docker staje się usługą zaplecza, która zarządza obrazami i kontenerami oraz obsługuje żądania API Docker.
    sudo systemctl start docker

    Uruchom usługę Docker

  3. ل Sprawdź, czy Docker działaWprowadź to polecenie. Wyświetli ono aktualny stan usługi Docker:
    okno dokowane stanu sudo systemctl

    Status usługi Docker

  4. Jak widać na powyższym obrazku, teraz powinieneś zobaczyć, że Docker jest aktywny i działa.

2. Wyczyść „Docker pull failed” i uruchom usługę Docker

Czasami, jeśli pobieranie Dockera się nie powiedzie, mogą pozostać niekompletne pliki, które uniemożliwiają poprawne uruchomienie demona Dockera. Usunięcie tych resztek plików pozwala Dockerowi zacząć od nowa. Ponowne uruchomienie usługi Docker pomaga rozwiązać wszelkie problemy spowodowane zablokowanymi lub uszkodzonymi plikami.

  1. otwarty Obwodowy Wprowadź następujące polecenia:
    sudo systemctl unmask docker.service sudo systemctl unmask docker.socket sudo systemctl start docker.service

Uruchom usługę Docker

Jeżeli po uruchomieniu tych poleceń błąd nadal występuje, należy: kasować Pozostałe pliki w katalogu KonteneroweNastępnie spróbuj ponownie uruchomić Dockera. Containerd, który stał się częścią Dockera w wersji 1.11, pomaga zarządzać kontenerami Dockera bezpośrednio w tle.

  • Pozostań w terminalu i uruchom te polecenia — pamiętaj, że będziesz musiał Hasło użytkownika root:
    sudo su service docker stop cd /var/run/docker/libcontainerd rm -rf containerd/* rm -f docker-containerd.pid service docker start

Ponowne uruchomienie usługi Docker

3. Uruchom usługę Dockerd (Docker Daemon) bezpośrednio

Dockerd to główny (ukryty) program, który działa w tle i obsługuje wszystkie zadania Dockera. W niektórych przypadkach bezpośrednie uruchomienie Dockerda może pomóc, zwłaszcza jeśli polecenie `systemctl` nie działa w Twoim systemie.

  1. otwarty terminal Użyj tego polecenia, aby bezpośrednio uruchomić demona Docker:
    sudo dockerd

Uruchom Dockerd

4. Uruchom Dockera za pomocą polecenia Service

Ręczne uruchomienie Dockera może zapewnić działanie usługi. Do uruchomienia Dockera można użyć polecenia `sudo service docker start`, co jest pomocne, jeśli Docker nie uruchomi się automatycznie po ponownym uruchomieniu systemu.

  1. Otwórz terminal i uruchom:
    sudo service --status-all sudo service docker start

Uruchom usługę Docker

5. Uruchamianie usługi Docker za pomocą Snap

Jeśli zainstalowałeś Dockera za pomocą Snap, upewnij się, że usługa Docker zarządzana przez Snap działa. Snap czasami wymaga samodzielnego uruchomienia lub połączenia usług. Użyj komendy `sudo snap start docker`, aby sprawdzić, czy demon Dockera działa prawidłowo.

  1. Otwórz terminal i uruchom to polecenie Uruchom Dockera:
    sudo snap start docker

    Uruchom Dockera

  2. Aby sprawdzić, czy Docker został poprawnie uruchomiony przy użyciu Snap, użyj:
    usługi sudo snap
  3. Spowoduje to Wyświetl listę wszystkich aktualnie działających usług Snap:
    Usługi Snap
  4. Jeśli Docker jeszcze się nie uruchomił, spróbuj Łączenie wtyczki docker:homeCo nie zawsze łączy się automatycznie. Następnie uruchom ponownie Dockera.
  5. Otwórz terminal i wykonaj następujące polecenie:
    sudo snap connect docker:home :home sudo snap start docker

    Uruchom Dockera

6. Uruchom Dockera dla użytkowników bez uprawnień roota

Ten błąd może również wystąpić, jeśli nie masz wystarczających uprawnień dostępu do „unix:///var/run/docker.sock”. Możesz tymczasowo ominąć ten problem, eksportując zmienną hosta Dockera, aby korzystać z lokalnego interfejsu sieciowego przez port 2375.

  1. Otwórz terminal i uruchom:
    eksport DOCKER_HOST=tcp://localhost:2375

    Eksport hosta Docker

7. Zainstaluj ponownie Dockera

Czasami problemy z instalacją Dockera – takie jak uszkodzone pliki lub nieprawidłowe ustawienia – mogą uniemożliwić prawidłowe działanie demona Dockera. Ponowna instalacja Dockera przywraca wszystko do stanu domyślnego i może rozwiązać problemy spowodowane błędnymi lub sprzecznymi ustawieniami.

  1. Po ponownej instalacji Dockera sprawdź, czy usługa działa, korzystając z następującego polecenia:
    sudo usługa docker start

    Spowoduje to uruchomienie Dockera i często rozwiąże problemy występujące, gdy program nie jest aktywny, zwłaszcza po ponownym uruchomieniu komputera lub gdy Docker nie uruchomi się automatycznie.

  2. Ponieważ demon Docker kontroluje wszystkie kontenery i obrazy, upewnienie się, że jest uruchomiony, przywraca połączenie między klientem Docker a demonem, co może naprawić błędy spowodowane przerwami w działaniu usługi lub brakiem aktywności.