[Ubuntu] Paramètres et précautions pour exécuter docker sans la commande sudo

2019er mars 10

Une note sur la façon d'activer docker sans sudo lors de l'utilisation de docker sur Ubuntu.

Déclencheur

Après avoir installé le docker, tel quelsudoLorsque j'ai vérifié l'opération sans commande, une erreur s'est produite.

#Exécuter depuis le docker du terminal Ubuntu exécuter hello-world 

docker: autorisation refusée lors de la tentative de connexion au socket du démon Docker sous unix: ///var/run/docker.sock: Publiez http: //%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/create: composez unix /var/run/docker.sock: connect: permission refusée. Voir'docker run –help '.

Il semble que l'accès au démon docker ait été refusé. J'ai tapé sudo docker run hello-world et cela a fonctionné.

La cause de l'erreur semble être les raisons suivantes.

Docker communique avec un démon (dockerd) fonctionnant avec les privilèges root via un socket unix ou tcp / ip, mais vous devez appartenir au groupe docker ou avoir les privilèges root pour accéder à dockerd.

Comprendre les dangers de l'ajout d'utilisateurs à un groupe Docker avec Docker

En ajoutant la commande sudo, les utilisateurs généraux peuvent exécuter des commandes qui ne peuvent pas être exécutées sans les privilèges root (comme la connexion à un démon).Mais ajouter sudo à chaque fois est fastidieux.

Contre-mesures et précautions

Une façon de fonctionner sans sudo est de faire en sorte que l'utilisateur appartienne au groupe dokcer (souvent recherché sur Google), mais il semble également y avoir un problème de sécurité.

Référence: Risque lors de l'octroi de privilèges de type root dans le groupe docker (document officiel)

Si vous souhaitez utiliser docker sans sudo, newgrp On dit qu'il vaut mieux appartenir temporairement à un groupe ou à des espaces de noms d'utilisateurs.

sudo groupadd docker # $ USER avec nom d'utilisateur sudo usermod -aG docker $ USER newgrp docker docker run hello-world 

Bonjour de Docker!
Ce message indique que votre installation semble fonctionner correctement.

Pour générer ce message, Docker a suivi les étapes suivantes:

1. Le client Docker a contacté le démon Docker.
2. Le démon Docker a extrait l'image «hello-world» du Docker Hub.
(AMD64)
3. Le démon Docker a créé un nouveau conteneur à partir de cette image qui exécute le
exécutable qui produit la sortie que vous lisez actuellement.
4. Le démon Docker a diffusé cette sortie vers le client Docker, qui l'a envoyée
à votre terminal.

Pour essayer quelque chose de plus ambitieux, vous pouvez exécuter un conteneur Ubuntu avec:
$ docker run -it Ubuntu bash

Partagez des images, automatisez les flux de travail et plus encore avec un identifiant Docker gratuit: https://hub.docker.com/

Pour plus d'exemples et d'idées, visitez:
https://docs.docker.com/get-started/