Quando vedi il messaggio di errore "Il demone Docker non può essere connesso a 'unix:///var/run/docker.sock'Questo di solito significa che comandi come `docker run` o `docker ps` non funzioneranno. Di conseguenza, non sarà possibile interagire con i container Docker. Questo errore si verifica perché il client Docker non riesce a connettersi al daemon Docker, il programma sottostante che gestisce tutte le operazioni Docker sul computer.

Errore di connessione Docker

La causa più comune di questo problema è che il servizio Docker non è in esecuzione sul sistema. Altre possibili cause includono la mancanza delle autorizzazioni necessarie per accedere al socket Docker, problemi con l'installazione di Docker o problemi con il file `docker.sock` stesso.

Ora che abbiamo un'idea delle possibili cause, passiamo ad alcune soluzioni pratiche.

1. Avviare il servizio Docker utilizzando systemctl

La prima cosa da verificare è se Docker è in esecuzione. Lo strumento `systemctl` consente di avviare e gestire i servizi di sistema. Se Docker non è attivo, il client Docker non riesce a comunicare con il processo Docker principale, causando questo errore. L'esecuzione del comando `systemctl start docker` avvierà il servizio Docker e dovrebbe risolvere il problema se è semplicemente inattivo.

  1. Apri il terminale Per prima cosa, esegui il seguente comando per Scopri docker:
    sudo systemctl unmask docker

    Se provi ad avviare Docker mentre è mascherato, vedrai l'errore "Impossibile avviare docker.service: l'unità è mascherata". Il mascheramento è un metodo più efficace per arrestare un servizio: ne impedisce l'avvio completo. Per visualizzare lo stato di tutti i file dell'unità sul tuo sistema, usa [nome metodo/strumento]. systemctl elenco-file-unità.

  2. Una volta che Docker diventa Non nascosto, potresti Avvia il demone Docker Utilizzando questo comando, il demone Docker diventa il servizio back-end che gestisce immagini e container e gestisce le richieste API Docker.
    sudo systemctl start docker

    Avvia il servizio Docker

  3. a Controlla se Docker funzionaInserisci questo comando. Visualizzerà lo stato attuale del tuo servizio Docker:
    sudo systemctl finestra mobile di stato

    Stato del servizio Docker

  4. Come puoi vedere nell'immagine sopra, ora dovresti vedere che Docker è attivo e funzionante.

2. Pulisci "Docker pull failed" e avvia il servizio Docker

A volte, se un pull Docker fallisce, potrebbe lasciare file incompleti che impediscono il corretto avvio del demone Docker. La rimozione di questi file residui consente a Docker di ripartire da zero. Il successivo riavvio del servizio Docker aiuta a risolvere eventuali problemi causati da file bloccati o danneggiati.

  1. Aperto Periferica Inserisci questi comandi:
    sudo systemctl unmask docker.service sudo systemctl unmask docker.socket sudo systemctl start docker.service

Avvia il servizio Docker

Se l'errore persiste dopo aver eseguito questi comandi, dovresti Elimina I file rimanenti nella directory contenitoreQuindi prova a riavviare Docker. Containerd, integrato in Docker nella versione 1.11, aiuta a gestire i container Docker direttamente in background.

  • Rimani nel Terminale ed esegui questi comandi: nota che dovrai La password dell'utente root:
    sudo su service docker stop cd /var/run/docker/libcontainerd rm -rf containerd/* rm -f docker-containerd.pid service docker start

Riavvio del servizio Docker

3. Avviare direttamente il servizio Dockerd (Docker Daemon)

Dockerd è il programma principale (nascosto) che viene eseguito in background e gestisce tutte le attività di Docker. In alcuni casi, l'avvio diretto di Dockerd può essere utile, soprattutto se il comando `systemctl` non funziona sul sistema.

  1. Aperto terminal Utilizzare questo comando per avviare direttamente il demone Docker:
    sudo dockerd

Avvia Dockerd

4. Avviare Docker utilizzando il comando Service

L'avvio manuale di Docker può garantire che il servizio sia in esecuzione. È possibile utilizzare il comando `sudo service docker start` per avviare Docker, utile se Docker non si avvia automaticamente dopo un riavvio del sistema.

  1. Apri il Terminale ed esegui:
    sudo service --status-all sudo service docker start

Avvia il servizio Docker

5. Avvio di un servizio Docker tramite Snap

Se hai installato Docker tramite Snap, devi assicurarti che il servizio Docker gestito da Snap funzioni correttamente. A volte Snap richiede di avviare o connettere manualmente i servizi. Utilizza `sudo snap start docker` per verificare che il demone Docker funzioni come previsto.

  1. Apri il Terminale ed esegui questo comando per Avvia Docker:
    sudo snap start docker

    Avvia Docker

  2. Per verificare se Docker è stato avviato correttamente tramite Snap, utilizzare:
    servizi sudo snap
  3. Questo si tradurrà in Elenca tutti i servizi Snap attualmente in funzione:
    Servizi Snap
  4. Se Docker non è ancora avviato, prova Collegamento del plugin docker:homeChe non sempre si connette automaticamente. Quindi riavvia Docker.
  5. Aprire il Terminale ed eseguire quanto segue:
    sudo snap connect docker:home :home sudo snap start docker

    Avvia Docker

6. Avviare Docker per gli utenti senza privilegi di root

Questo errore può verificarsi anche se non si dispone di autorizzazioni sufficienti per accedere a 'unix:///var/run/docker.sock'. È possibile aggirare temporaneamente questo problema esportando la variabile host Docker per utilizzare l'interfaccia di rete locale sulla porta 2375.

  1. Apri il Terminale ed esegui:
    esporta DOCKER_HOST=tcp://localhost:2375

    Esportazione host Docker

7. Reinstallare Docker

A volte, problemi di installazione di Docker, come file danneggiati o impostazioni errate, possono impedire il corretto funzionamento del demone Docker. Reinstallare Docker ripristina tutto allo stato predefinito e può risolvere i problemi causati da impostazioni errate o in conflitto.

  1. Dopo aver reinstallato Docker, verifica che il servizio sia in esecuzione utilizzando il seguente comando:
    Avvio della finestra mobile del servizio sudo

    Ciò avvierà Docker e spesso risolverà i problemi quando il programma non è attivo, soprattutto dopo un riavvio del computer o se Docker non si avvia automaticamente.

  2. Poiché il demone Docker controlla tutti i contenitori e le immagini, assicurandosi che sia in esecuzione si ripristina la connessione tra il client Docker e il demone, il che può correggere gli errori causati da interruzioni del servizio o inattività.