Installazione di Docker su Ubuntu è molto semplice! Chiunque, anche i neofiti, può installarlo in 15 minuti. Dopo aver installato Docker, ho notato che non potevo eseguire la maggior parte delle operazioni Docker come utente normale. Ho dovuto eseguire Docker come utente "root" o con l'autorizzazione "sudo" ogni volta. Ogni volta che ho provato a eseguire Docker come utente non root o senza autorizzazione sudo, ottengo il seguente errore:
Autorizzazione negata durante il tentativo di connessione al socket del demone Docker su unix:///var/run/docker.sock:Ottieni http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version:dial unix /var/run/docker.sock:connect:autorizzazione negata
Ad esempio, volevo controllare la versione Docker come utente normale usando il comando:
versione $ docker
E ricevo questo messaggio di errore:
Client:Docker Engine - CommunityVersion:19.03.8Versione API:1.40Go version:go1.12.17Git commit:afacb8b7f0Built:Wed Mar 11 01:25:46 2020OS/Arch:linux/amd64Experimental:falseAutorizzazione negata durante il tentativo di connessione al socket del demone Docker su unix:///var/run/docker.sock:Ottieni http://%2Fvar%2Frun%2Fdocker.sock/v1.40/version:dial unix /var/run/ docker.sock:connect:autorizzazione negata
Ma quando eseguo lo stesso comando con l'autorizzazione sudo;
versione della finestra mobile $ sudo
Visualizza tutti i dettagli della versione Docker attualmente installata come mostrato nell'output seguente.
Client:Docker Engine - Community Version:19.03.8 API version:1.40 Go version:go1.12.17 Git commit:afacb8b7f0 Costruito:Wed Mar 11 01:25:46 2020 OS/Arch:linux/amd64 Experimental:falseServer:Docker Engine - Community Engine:Versione:19.03.8 Versione API:1.40 (versione minima 1.12) Versione go:go1.12.17 Git commit:afacb8b7f0 Costruito:mercoledì 11 marzo 01:24:19 2020 OS/Arch:linux/amd64 Sperimentale:false containerd:Versione:1.2.13 GitCommit:7ad184331fa3e55e52b890ea95e65ba581ae3429 runc:Versione:1.0.0-rc10 GitCommit:dc9208a3303feef5b3839f4323d9beb36df0a9dd docker-init:Versione:G6Commit:fec3>0.18.0
Dopo aver cercato nella pagina della documentazione di Docker, mi sono reso conto che il demone Docker si lega a un socket Unix anziché a una porta TCP per impostazione predefinita. Dal momento che quel socket Unix è di proprietà della radice utente, il demone Docker verrà eseguito solo come utente root. Pertanto, gli utenti normali non possono eseguire la maggior parte dei comandi Docker.
Se desideri eseguire Docker come utente non root in Linux, devi eseguire i passaggi seguenti. L'ho testato sul server Ubuntu 18.04 e ha funzionato perfettamente! Dovrebbe funzionare anche su altre distribuzioni Linux.
Esegui Docker come utente non root in Linux
Per correggere l'errore di autorizzazione negata Docker e utilizzare Docker come utente non root, crea un gruppo chiamato "docker" con il seguente comando:
Docker $ sudo groupaddSuccessivamente, aggiungi il tuo utente alla docker gruppo:
$ sudo usermod -aG docker $USERDopo aver aggiunto l'utente al gruppo Docker, disconnettersi e riconnettersi per rendere effettive le modifiche.
In alternativa, esegui il comando seguente per applicare le modifiche ai gruppi:
Docker $ newgrpD'ora in poi, l'utente normale (non root) può essere in grado di utilizzare Docker senza i permessi sudo.
Fammi eseguire i seguenti comandi come utente normale:
versione $ docker$ docker esegui ciao-mondoRisultato di esempio:
Vedere? Ora posso eseguire entrambi i comandi Docker senza l'autorizzazione sudo.
Per ogni evenienza, hai già eseguito alcuni comandi Docker con l'autorizzazione "sudo" prima di aggiungere il tuo utente al gruppo Docker, probabilmente vedrai un errore simile a quello di seguito.
AVVERTENZA:errore durante il caricamento del file di configurazione:/home/user/.docker/config.json -stat /home/user/.docker/config.json:autorizzazione negataIl messaggio di errore sopra indica che il tuo ~/.docker/ la directory è stata creata con autorizzazioni errate a causa dei comandi 'sudo'. Per risolvere questo problema, modifica la proprietà e le autorizzazioni di questa directory utilizzando i seguenti comandi:
$ sudo chown "$USER":"$USER" /home/"$USER"/.docker -R$ sudo chmod g+rwx "$HOME/.docker" -REsci e accedi nuovamente per rendere effettivo.
Se il problema persiste, potresti dover rimuovere il tuo ~/.docker/ directory. Verrà ricreato automaticamente, ma perderai tutte le impostazioni personalizzate, se presenti.
Spero che questo aiuti.