Quando lavori con Docker, potresti riscontrare un'istanza in cui il comando restituisce un errore di 'autorizzazione negata'. Questo errore si verifica quando si tenta di eseguire Docker senza autorizzazioni sufficienti per il comando.
Docker richiede permessi sudo o root per eseguire i comandi associati per impostazione predefinita. Il tentativo di eseguire qualsiasi comando senza i privilegi richiesti porta al famigerato errore di 'autorizzazione negata'.
Questo tutorial fornisce i vari metodi e tecniche che è possibile utilizzare per correggere l'errore 'autorizzazione negata' quando si tenta di eseguire i comandi Docker.
Tieni presente che non copre il processo di esecuzione di Docker in un ambiente senza root. Puoi controllare il nostro tutorial su Docker rootless nella seguente risorsa:
Requisiti:
Come puoi immaginare, per seguire questo post, è necessario disporre di quanto segue:
- Docker versione 20.0 e successive
- Autorizzazioni Sudo o root sul sistema host
Qual è l'errore 'Autorizzazione negata'?
Quando si verifica l'errore 'autorizzazione negata' in Docker, significa che il sistema host non può stabilire una comunicazione con il demone Docker a causa di autorizzazioni insufficienti. Un esempio è mostrato di seguito:
$ esecuzione della finestra mobile -Esso busybox sh
Se riscontri l'errore indicato, puoi utilizzare alcuni dei seguenti metodi per sapere come risolverlo.
Metodo 1: eseguire Docker come root
Il primo e più ovvio metodo per risolvere l’errore “permesso negato” di Docker è utilizzare il comando “sudo”. Se disponi dei privilegi sudo, puoi risolverlo eseguendo il comando associato utilizzando sudo.
Ad esempio, per correggere il suddetto errore, possiamo aggiungere sudo prima del comando come segue:
$ sudo esecuzione della finestra mobile -Esso busybox sh
Come puoi vedere, Docker estrae con successo le immagini richieste ed esegue il contenitore.
Metodo 2: riavviare il demone Docker
A volte, puoi ricevere l'errore 'autorizzazione negata' in Docker se il motore ha un problema. Invece di rintracciare manualmente il problema, puoi tentare un rapido riavvio del demone Docker per ricaricarlo.
Inizia controllando lo stato del demone Docker come segue:
$ finestra mobile di stato systemctl docker
Dopo esserti assicurato che Docker sia in esecuzione, riavvia il servizio con il seguente comando:
Questo dovrebbe avviare il demone Docker e risolvere qualsiasi potenziale problema che potrebbe impedirti di eseguire qualsiasi comando.
Metodo 3: abilitare l'utente non root
Un altro metodo che puoi utilizzare per risolvere l'errore 'autorizzazione negata' in Docker è consentire agli utenti non root di eseguire i comandi Docker.
Per abilitare questo metodo, accedi al sistema host e crea un nuovo gruppo per Docker.
$ sudo gruppoaggiungere -F finestra mobile
Successivamente, aggiungi qualsiasi utente che desideri al gruppo Docker come segue:
Il comando precedente dovrebbe aggiungere l'utente linuxhint al gruppo Docker.
Infine, applica le modifiche del gruppo alla sessione corrente utilizzando il seguente comando:
$ finestra mobile newgrp
Una volta completato, puoi eseguire qualsiasi comando Docker senza utilizzare sudo per nessun utente nel gruppo Docker.
Metodo 4: riconfigurare le autorizzazioni Docker
Il prossimo metodo che puoi utilizzare è reimpostare le autorizzazioni per i socket Docker. Inizia modificando la proprietà del socket Docker Unix eseguendo il seguente comando:
$ sudo chown root:docker / era / correre / docker.sock
Successivamente, assumi la proprietà della directory Docker nascosta nella tua home directory utilizzando il comando come segue:
Infine, assegna al gruppo i permessi di lettura e scrittura alla directory come segue:
I metodi forniti dovrebbero impostare autorizzazioni sufficienti per i file e le directory Docker essenziali.
Conclusione
In questo tutorial, abbiamo imparato come utilizzare i quattro metodi principali per risolvere l'errore 'autorizzazione negata' di Docker quando si richiama un comando Docker.