GNU/Linux >> Linux Esercitazione >  >> Panels >> Docker

Come eseguire Docker come utente non root in Linux

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 groupadd

Successivamente, aggiungi il tuo utente alla docker gruppo:

$ sudo usermod -aG docker $USER

Dopo 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 $ newgrp

D'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-mondo

Risultato 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 negata

Il 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" -R

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


Docker
  1. Come controllare la versione di Redhat

  2. Esegui Docker come utente non root

  3. Come eliminare un utilizzo non root con UID 0 in Linux

  4. Come aggiungere utenti al contenitore Docker?

  5. Android - Come eseguire il root su Samsung S6 utilizzando Linux?

Come installare Docker CE in Linux Mint 20

Come cambiare utente su Linux

Come eseguire un'app .NET in Docker

Come eseguire PHPMyAdmin in un contenitore Docker

Come eseguire Grafana in un contenitore Docker

Come eseguire i contenitori Docker