[Ubuntu] Impostazioni e precauzioni per l'esecuzione di docker senza il comando sudo

2019 年 10 月 3 日

Una nota su come abilitare la finestra mobile senza sudo quando si utilizza la finestra mobile su Ubuntu.

Trigger

Dopo aver installato docker, così com'èsudoQuando ho verificato l'operazione senza un comando, si è verificato un errore.

# Esegui dalla finestra mobile del terminale di Ubuntu esegui hello-world 

docker: autorizzazione negata durante il tentativo di connessione al socket del daemon Docker su unix: ///var/run/docker.sock: post http: //%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/create: comporre unix /var/run/docker.sock: connect: autorizzazione negata. Vedere'docker run –help '.

Sembra che l'accesso al daemon docker sia stato negato. Ho digitato sudo docker run hello-world e ha funzionato.

La causa dell'errore sembra essere i seguenti motivi.

Docker comunica con un daemon (dockerd) in esecuzione con privilegi di root tramite socket unix o tcp / ip, ma è necessario appartenere al gruppo docker o disporre dei privilegi di root per accedere a dockerd.

Comprendi i pericoli dell'aggiunta di utenti a un gruppo docker con Docker

Aggiungendo il comando sudo, gli utenti generici possono eseguire comandi che non possono essere eseguiti senza i privilegi di root (come la connessione a un demone).Ma aggiungere sudo ogni volta è noioso.

Contromisure e precauzioni

Un modo per eseguire senza sudo è fare in modo che l'utente appartenga al gruppo dokcer (spesso su Google), ma sembra che ci sia anche un problema di sicurezza.

Riferimento: rischio durante la concessione di privilegi simili a root nel gruppo docker (documento ufficiale)

Se vuoi usare docker senza sudo, newgrp Si dice che sia meglio appartenere temporaneamente a un gruppo o spazi dei nomi utente.

sudo groupadd docker # $ USER con nome utente sudo usermod -aG docker $ USER newgrp docker docker run hello-world 

Ciao da Docker!
Questo messaggio mostra che l'installazione sembra funzionare correttamente.

Per generare questo messaggio, Docker ha eseguito i seguenti passaggi:

1. Il client Docker ha contattato il daemon Docker.
2. Il daemon Docker ha estratto l'immagine "hello-world" dall'hub Docker.
(emendamento64)
3. Il daemon Docker ha creato un nuovo contenitore da quell'immagine che esegue il file
eseguibile che produce l'output che stai attualmente leggendo.
4. Il daemon Docker ha trasmesso l'output al client Docker, che lo ha inviato
al tuo terminale.

Per provare qualcosa di più ambizioso, puoi eseguire un container Ubuntu con:
$ docker esegui -it ubuntu bash

Condividi immagini, automatizza i flussi di lavoro e altro ancora con un Docker ID gratuito: https://hub.docker.com/

Per ulteriori esempi e idee, visita:
https://docs.docker.com/get-started/