Risoluzione del problema di connessione al Docker Daemon
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.

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.
- 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à.
- 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

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

- 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.
- Aperto Periferica Inserisci questi comandi:
sudo systemctl unmask docker.service sudo systemctl unmask docker.socket sudo systemctl start docker.service

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

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.
- Aperto terminal Utilizzare questo comando per avviare direttamente il demone Docker:
sudo 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.
- Apri il Terminale ed esegui:
sudo service --status-all sudo service docker start

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.
- Apri il Terminale ed esegui questo comando per Avvia Docker:
sudo snap start docker

- Per verificare se Docker è stato avviato correttamente tramite Snap, utilizzare:
servizi sudo snap
- Questo si tradurrà in Elenca tutti i servizi Snap attualmente in funzione:

- Se Docker non è ancora avviato, prova Collegamento del plugin docker:homeChe non sempre si connette automaticamente. Quindi riavvia Docker.
- Aprire il Terminale ed eseguire quanto segue:
sudo snap connect docker:home :home sudo snap start 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.
- Apri il Terminale ed esegui:
esporta DOCKER_HOST=tcp://localhost:2375

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.
- 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.
- 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à.






I commenti sono chiusi.