[Ubuntu] Configuración y precauciones para ejecutar Docker sin el comando sudo

2019/10/3

Una nota sobre cómo habilitar Docker sin sudo cuando se usa Docker en Ubuntu.

Desencadenar

Después de instalar Docker, tal como estásudoCuando verifiqué la operación sin un comando, ocurrió un error.

# Ejecutar desde la ventana acoplable de la terminal de Ubuntu ejecutar hello-world 

docker: se le denegó el permiso al intentar conectarse al socket del demonio de Docker en unix: ///var/run/docker.sock: Publicar http: //%2Fvar%2Frun%2Fdocker.sock/v1.39/containers/create: marque unix /var/run/docker.sock: connect: permiso denegado. Consulte 'docker run –help'.

Parece que se ha denegado el acceso al demonio de la ventana acoplable. Escribí sudo docker run hello-world y funcionó.

La causa del error parece ser las siguientes razones.

Docker se comunica con un demonio (dockerd) que se ejecuta con privilegios de root a través de unix socket o tcp / ip, pero debe pertenecer al grupo de docker o tener privilegios de root para acceder a dockerd.

Comprender los peligros de agregar usuarios a un grupo de Docker con Docker

Al agregar el comando sudo, los usuarios generales pueden ejecutar comandos que no se pueden ejecutar sin privilegios de root (como conectarse a un demonio).Pero agregar sudo cada vez es tedioso.

Contramedidas y precauciones

Una forma de ejecutar sin sudo es hacer que el usuario pertenezca al grupo dokcer (a menudo buscado en Google), pero también parece haber un problema de seguridad.

Referencia: Riesgo al otorgar privilegios de root en el grupo de Docker (documento oficial)

Si desea utilizar Docker sin sudo, newgrp Se dice que es mejor pertenecer temporalmente a un grupo o espacios de nombres de usuario.

sudo groupadd docker # $ USER con nombre de usuario sudo usermod -aG docker $ USER newgrp docker docker ejecutar hello-world 

¡Hola de Docker!
Este mensaje muestra que su instalación parece estar funcionando correctamente.

Para generar este mensaje, Docker siguió los siguientes pasos:

1. El cliente de Docker se puso en contacto con el demonio de Docker.
2. El demonio de Docker extrajo la imagen de "hola mundo" del concentrador de Docker.
(amd64)
3. El demonio de Docker creó un nuevo contenedor a partir de esa imagen que ejecuta el
ejecutable que produce la salida que está leyendo actualmente.
4. El demonio de Docker transmitió esa salida al cliente de Docker, que la envió
a su terminal.

Para probar algo más ambicioso, puede ejecutar un contenedor de Ubuntu con:
$ docker ejecutar -it ubuntu bash

Comparta imágenes, automatice flujos de trabajo y más con un Docker ID gratuito: https://hub.docker.com/

Para obtener más ejemplos e ideas, visite:
https://docs.docker.com/get-started/