Saltar al contenido principal

Añadir usuarios al grupo Docker: Guía para profesionales de los datos

Aprende a utilizar correctamente Docker sin sudo, manteniendo la seguridad de tus sistemas.
Actualizado 18 may 2025  · 10 min de lectura

¿Alguna vez has tenido que escribir sudo antes de cada comando Docker? Este es el artículo para ti.

Por defecto, Docker bloquea el acceso a su demonio, permitiendo que sólo root y los miembros del grupo Docker ejecuten comandos. Esto mantiene tu sistema más seguro, pero es molesto cuando trabajas con contenedores todo el día. El grupo Docker existe exactamente por esta razón: a te permite utilizar Docker sin que las contraseñas sudo te ralenticen.

Cuando te añadas al grupo Docker, notarás la diferencia enseguida. Puedes ejecutar docker build, docker run, y otros comandos sin que se produzcan esos errores de permiso o se te pida la contraseña.

En este artículo, aprenderás exactamente cómo añadir usuarios al grupo Docker en diferentes sistemas, qué riesgos de seguridad hay que tener en cuenta y cómo proteger tu sistema a la vez que facilitas el uso de Docker.

> Los LLM se están llevando todo el bombo en 2025. Sigue esta guía paso a paso para desplegar aplicaciones LLM utilizando Docker.

Comprender el Grupo Docker

Cuando empieces a trabajar con Docker, pronto te encontrarás con problemas de permisos si no has configurado bien las cosas.

Analicemos qué es realmente el grupo Docker y por qué es importante para tu flujo de trabajo.

Definición y funcionalidad

El grupo docker es un grupo de usuarios del sistema que da permiso a sus miembros para utilizar el demonio Docker sin necesidad de privilegios sudo.

Cuando instalas Docker en sistemas Linux, este grupo suele crearse automáticamente. El archivo de socket de Docker (/var/run/docker.sock) es propiedad de root pero tiene permisos de grupo establecidos para el grupo docker, que es como funciona este control de acceso.

Los usuarios de este grupo pueden crear imágenes, ejecutar contenedores, gestionar redes y realizar otras operaciones de Docker sin anteponer sudo a los comandos. Esto significa escribir menos y no tener que introducir contraseñas cuando trabajes con contenedores. Si intentas ejecutar comandos Docker sin estar en este grupo, obtendrás errores de "permiso denegado", lo que en última instancia ralentizará tu progreso.

Implicaciones de seguridad de la pertenencia a un grupo

Añadir usuarios al grupo Docker conlleva riesgos de seguridad reales que no debes ignorar. 

Los miembros del grupo Docker pueden obtener privilegios de root en el sistema anfitrión. Esto ocurre porque Docker te permite montar directorios del host en los contenedores, incluidos los directorios sensibles del sistema. Un usuario con acceso a Docker puede crear un contenedor que monte todo el sistema de archivos raíz y modificar cualquier archivo del host.

Las vulnerabilidades de fuga de contenedores plantean otro riesgo, ya que podrían permitir a los atacantes escapar del aislamiento de los contenedores.

Sólo debes añadir usuarios de confianza al grupo Docker, e incluso entonces, considéralo equivalente a darles acceso root. Muchos profesionales de la seguridad recomiendan limitar la pertenencia al grupo Docker sólo a aquellos usuarios que la necesiten absolutamente para su trabajo diario.

Aplicación paso a paso

Ahora que entiendes qué es el grupo Docker y sus implicaciones, vamos a ensuciarnos las manos con la configuración real.

Crear el grupo Docker

En la mayoría de los casos, no necesitarás crear el grupo Docker manualmente ya que se crea automáticamente durante la instalación de Docker. Puedes comprobar si el grupo existe ejecutando

grep docker /etc/group

Imagen 1 - Comprobación de la existencia del grupo Docker

Imagen 1 - Comprobación de la existencia del grupo Docker

Si, por alguna razón, el grupo no existe (como en mi caso), puedes crearlo con este comando (sólo para Linux):

sudo groupadd docker

Este comando crea el grupo Docker en tu sistema, pero está limitadoa los sistemas operativos Linux

Para macOS, puedes seguir las instrucciones oficiales de Apple, ya que el grupo se crea a través de la GUI. El proceso es similar para los sistemas operativos Windows.

Después de seguir los pasos, deberías ver tu grupo creado:

Imagen 2 - Comprobación de la existencia del grupo Docker (2)

Imagen 2 - Comprobación de la existencia del grupo Docker (2)

Añadir usuarios al grupo

Para añadir tu usuario actual al grupo Docker, ejecuta este comando en sistemas operativos Linux:

sudo usermod -aG docker $USER

La bandera -a significa "añadir" y -G especifica el grupo al que quieres añadir al usuario. La variable $USER utiliza automáticamente tu nombre de usuario actual.

En macOS y Windows, puedes añadir usuarios al grupo a través de la Configuración del sistema o del Panel de control: sólo tienes que activar un interruptor para añadir todos los usuarios que desees:

Imagen 3 - Añadir usuarios al grupo

Imagen 3 - Añadir usuarios al grupo

Después de añadirte al grupo, debes desconectarte y volver a conectarte para que los cambios surtan efecto. Tu sesión actual no reconocerá la nueva pertenencia al grupo hasta que te desconectes completamente. En algunos sistemas, puede que tengas que reiniciar:

sudo reboot

Para verificar que tu usuario ahora forma parte del grupo de docker, ejecuta

groups

Deberías ver "docker" entre los miembros de tu grupo:

Imagen 4 - Visualización de los grupos de usuarios

Imagen 4 - Visualización de los grupos de usuarios

Solución de problemas comunes

Si sigues obteniendo errores de "permiso denegado" después de añadirte al grupo, puede que tengas que arreglar los permisos del socket Docker:

sudo chown root:docker /var/run/docker.sock
sudo chmod 660 /var/run/docker.sock

Otro problema común ocurre cuando se reinicia el servicio Docker, lo que puede restablecer los permisos de los sockets. Si Docker se inició después de que hicieras los cambios de grupo, prueba a reiniciar el servicio Docker:

sudo systemctl restart docker

En caso de problemas persistentes de permisos, comprueba que la configuración de tu servicio Docker es correcta. En algunos sistemas, Docker puede estar configurado para utilizar un nombre de grupo o una ubicación de socket diferentes. Puedes consultar el archivo de configuración del demonio Docker en /etc/docker/daemon.json o los archivos de servicio en /lib/systemd/system/docker.service.

Recuerda que los cambios de permisos que realices se aplicarán a tu sesión de inicio de sesión actual sólo después de que cierres la sesión y vuelvas a entrar en. Esta es la causa número uno de los problemas de "he hecho los cambios, pero sigue sin funcionar".

Consideraciones de seguridad y mitigación

Añadir usuarios al grupo Docker puede crear riesgos de seguridad, de los que debes ser consciente. Examinemos estos riesgos y lo que puedes hacer para proteger tus sistemas.

Riesgos de la pertenencia a un grupo Docker

Pertenecer a un grupo Docker es prácticamente lo mismo que tener acceso root a tu sistema. No es una exageración, es la realidad del funcionamiento de Docker.

Cuando estás en el grupo Docker, puedes ejecutar contenedores que monten partes sensibles del sistema de archivos de tu host. Por ejemplo, este sencillo comando te da acceso completo para modificar cualquier archivo de tu host:

docker run -it --rm -v /:/hostroot alpine chroot /hostroot

También puedes cambiar la configuración del demonio Docker, crear contenedores privilegiados o utilizar el modo de red host para eludir el aislamiento de red. Estas capacidades permiten a los usuarios malintencionados (o a las aplicaciones comprometidas con acceso a Docker) apoderarse completamente de tu sistema anfitrión.

Hay un par de riesgos potenciales más que debes conocer:

  • Ejecutar contenedores que accedan directamente a dispositivos hardware.
  • Vinculación a puertos de red con numeración baja.
  • Iniciar contenedores con perfiles seccomp personalizados que desactiven los controles de seguridad.
  • Crear contenedores que utilicen el espacio de nombres de proceso del anfitrión.

Se puede abusar de cada uno de ellos para obtener privilegios elevados o interrumpir las operaciones del sistema.

Buenas prácticas para mitigar los riesgos

Para reducir estos riesgos, sigue el principio del menor privilegio-sólo concede la pertenencia al grupo Docker a los usuarios que la necesiten absolutamente. Si varias personas necesitan utilizar un sistema compartido, considera la posibilidad de crear una cuenta de usuario independiente sólo para las operaciones de Docker.

Elmodo sin raízde Docker ofrece una alternativa más segura al enfoque del grupo Docker. El modo sin raíz te permite ejecutar el demonio Docker y los contenedores como usuario no raíz, sin necesidad de pertenecer a ningún grupo especial:

# Install Docker in rootless mode
dockerd-rootless-setuptool.sh install

# Start the rootless Docker daemon
systemctl --user start docker

Losespacios de nombres deusuario proporcionan otra capa de seguridad al asignar los UID de los contenedores a un rango diferente en el host. Esto significa que aunque un contenedor se ejecute como root (UID 0), ese proceso se asigna a un usuario sin privilegios en el host:

# Add to /etc/docker/daemon.json
{
  "userns-remap": "default"
}

Considera la posibilidad de utilizar laasignación estática de UID/GID para los usuarios de contenedores, con el fin de mantener un mapeo de identidades coherente. En tus archivos Docker, crea usuarios específicos con ID predeterminados:

# Create a user with a static UID/GID
RUN groupadd -g 10001 appgroup && \
    useradd -u 10000 -g appgroup -s /bin/bash appuser

# Switch to that user
USER appuser

Audita regularmente quién es miembro del grupo Docker con comandos como:

getent group docker

Y elimina a los usuarios que ya no necesiten acceso:

sudo gpasswd -d username docker

En combinación, estos enfoques te proporcionan a ti y a tu equipo la comodidad de la pertenencia a un grupo Docker, al tiempo que minimizan los riesgos de seguridad que introduce.

Configuración avanzada y alternativas

Si buscas formas distintas de gestionar el acceso a Docker más allá del enfoque estándar de pertenencia a grupos, tienes opciones. Exploremos algunas configuraciones avanzadas y alternativas que podrían ajustarse mejor a tus requisitos de seguridad.

Fortalecimiento de la seguridad de Dockerfile

Puedes incorporar la seguridad directamente en tus archivos Docker para reducir los riesgos, incluso cuando los usuarios tengan acceso al grupo Docker.

En el siguiente ejemplo, utilizaré compilaciones multietapa para mantener pequeñas tus imágenes de Python y reducir la superficie de ataque. 

Para seguir, crea estos archivos:

app.py:

from flask import Flask, jsonify

app = Flask(__name__)


@app.route("/api/health")
def health():
    return jsonify({"status": "healthy"})


if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8000, debug=True)

requisitos.txt:

flask==3.1.0

Dockerfile:

FROM python:3.13-slim AS builder
WORKDIR /app
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt

FROM python:3.13-slim
WORKDIR /app
COPY --from=builder /usr/local/lib/python3.13/site-packages /usr/local/lib/python3.13/site-packages
COPY . .
RUN useradd -r -u 1000 -g users appuser
USER appuser
CMD ["python", "app.py"]

En pocas palabras, este Dockerfile incluye una instrucción USER con un usuario no root y copia el contenido relevante (paquetes Python) de un paso de compilación anterior.

> Si eres nuevo en la contenedorización de aplicaciones, no temas: nuestra guía completa te ayudará.

Puedes construir y ejecutar un contenedor de este tipo con los siguientes comandos:

# Build the image
docker build -t my-python-app .

# Run the container
docker run --cap-drop=ALL --cap-add=NET_BIND_SERVICE my-python-app

Imagen 5 - Ejecutar un contenedor con privilegios mínimos

Imagen 5 - Ejecutar un contenedor con privilegios mínimos

El comando recién añadido - --cap-drop=ALL - elimina todas las capacidades Linux del contenedor (restringe los privilegios), mientras que el comando --cap-add=NET_BIND_SERVICE vuelve a añadir la capacidad NET_BIND_SERVICE, que permite al contenedor enlazar con puertos de numeración baja.

Estas técnicas limitan lo que puede hacer un contenedor, incluso si alguien con acceso al grupo Docker intenta utilizarlo indebidamente.

sudo como alternativa

Si no quieres añadir usuarios al grupo Docker, utilizar sudo es una alternativa viable. Este enfoque te da más control y una pista de auditoría de los comandos Docker.

Puedes crear una entrada sudoers personalizada que permita a usuarios específicos ejecutar sólo comandos Docker sin contraseña:

# Add to /etc/sudoers.d/docker
username ALL=(root) NOPASSWD: /usr/bin/docker

Para una mejor usabilidad, crea alias en tu archivo .bashrc o .zshrc:

alias docker='sudo docker'
alias docker-compose='sudo docker-compose'

Este enfoque sudo ofrece mayor seguridad porque

  • Obtendrás todos los comandos Docker registrados en los logs del sistema.
  • Puedes restringir qué subcomandos Docker están permitidos.
  • Los usuarios no pueden modificar la configuración del demonio Docker.

La desventaja es un poco más de mecanografía y posibles problemas con herramientas que esperan acceso directo a Docker.

Consideraciones sobre Windows

Windows gestiona los permisos de Docker de forma diferente a Linux. En lugar del grupo docker, Windows utiliza el grupo docker-users.

Para añadir un usuario al grupo docker-users en Windows, haz lo siguiente:

  1. Abre Administración de equipos (haz clic con el botón derecho del ratón en Inicio y selecciona "Administración de equipos").
  2. Ve a Herramientas del Sistema > Usuarios y Grupos Locales > Grupos.
  3. Haz doble clic en "docker-users".
  4. Haz clic en "Añadir" e introduce el nombre de usuario.
  5. Haz clic en "Aceptar" y cierra Gestión de ordenadores.

Imagen 6 - Grupos de usuarios en Windows

Imagen 6 - Grupos de usuarios en Windows

Alternativamente, puedes utilizar PowerShell con privilegios de administrador:

Add-LocalGroupMember -Group "docker-users" -Member "username"

Después de añadir un usuario, tendrá que desconectarse y volver a conectarse para que los cambios surtan efecto, igual que en Linux.

También hay que tener en cuenta que Windows ofrece funciones de seguridad adicionales mediante el Control de Aplicaciones de Windows Defender y los modos de aislamiento de Hyper-V que no están disponibles en Linux. Para entornos de alta seguridad en Windows, puedes utilizar estas funciones para crear límites más fuertes entre los contenedores y el host.

> Los profesionales de los datos necesitan Docker en 2025, y esta guía te mostrará cómo aprenderlo.

Resumen de los grupos de usuarios de Docker

Ahora ya tienes una idea completa de cómo añadir usuarios al grupo Docker y por qué es importante. Recapitulemos lo que hemos tratado.

Añadir usuarios al grupo Docker facilita mucho el trabajo con contenedores al eliminar la necesidad de comandos sudo. Es un proceso sencillo: comprueba si el grupo existe, añade tu usuario con usermod -aG docker $USER, y luego cierra la sesión y vuelve a entrar. Si tienes problemas, comprueba los permisos del socket y reinicia Docker.

Pero no olvides que dar a alguien acceso al grupo Docker es casi lo mismo que darle la contraseña de root. Cualquiera de este grupo puede montar todo tu sistema de archivos, instalar software o incluso modificar archivos del sistema a través de contenedores. Por eso es crucial ser selectivo sobre quién obtiene este acceso.

Entonces, ¿cuál es el enfoque adecuado para tu entorno?

En general, para los programadores que trabajan en sus propias máquinas, la pertenencia a un grupo Docker está bien. Para servidores compartidos o entornos de producción, considera alternativas como el modo sin raíz, los espacios de nombres de usuario o el uso de sudo con comandos limitados. Y hagas lo que hagas, sigue siempre las mejores prácticas de seguridad en tus archivos Docker, utilizando usuarios no root y eliminando las capacidades innecesarias.

Vigila quién tiene acceso al grupo Docker realizando auditorías periódicas. Con el tiempo, las personas cambian de función, abandonan los equipos o simplemente dejan de necesitar determinados permisos. Una comprobación rápida con getent group docker puede ayudarte a detectar usuarios que ya no deberían estar ahí.

Si quieres aprender más sobre Docker y la contenedorización en general, estos cursos de DataCamp son tu mejor próxima parada:

Domina Docker y Kubernetes

Aprende el poder de Docker y Kubernetes con una pista interactiva para construir y desplegar aplicaciones en entornos modernos.
Empezar pista gratis

Preguntas frecuentes

¿Qué es el grupo Docker y por qué es importante?

El grupo Docker es un grupo de usuarios del sistema que concede a sus miembros permiso para utilizar el demonio Docker sin privilegios sudo. Existe para hacer que los comandos de Docker sean más cómodos, eliminando las solicitudes de contraseña y los errores de permiso. Cuando instalas Docker en sistemas Linux, este grupo se crea automáticamente y controla el acceso al archivo de socket de Docker. Añadir usuarios a este grupo les permite ejecutar directamente todos los comandos Docker, lo que mejora enormemente la eficacia del flujo de trabajo.

¿Qué riesgos de seguridad conlleva la pertenencia a un grupo Docker?

La pertenencia a un grupo Docker otorga un acceso equivalente al de root a tu sistema. Los miembros pueden montar el sistema de archivos del host dentro de los contenedores, modificar los archivos del sistema y, potencialmente, obtener acceso administrativo completo. También pueden cambiar las configuraciones del demonio Docker y ejecutar contenedores privilegiados con acceso directo al hardware. Este nivel de acceso hace que sea crucial añadir sólo usuarios de confianza al grupo Docker y seguir medidas adicionales de refuerzo de la seguridad.

¿Puedo utilizar Docker sin añadir usuarios al grupo Docker?

Sí, puedes utilizar Docker sin añadir usuarios al grupo Docker. La alternativa más común es utilizar sudo antes de cada comando Docker, lo que proporciona una mayor seguridad y capacidad de auditoría. Otra opción es configurar el modo rootless de Docker, que permite ejecutar el demonio y los contenedores como usuario no root. También puedes crear entradas sudoers personalizadas que permitan a usuarios concretos ejecutar sólo comandos Docker sin contraseña.

¿Cómo verifico si un usuario se ha añadido correctamente al grupo Docker?

Puedes verificar que se ha añadido correctamente al grupo Docker ejecutando el comando groups $USERNAME para listar todos los grupos a los que pertenece el usuario. Si aparece "docker" en la lista, el usuario es miembro. También puedes consultar en getent group docker todos los miembros del grupo Docker. Recuerda que los usuarios deben desconectarse y volver a conectarse antes de que surtan efecto las nuevas afiliaciones a grupos, lo cual es un punto habitual de solución de problemas.

¿En qué se diferencia la gestión de grupos de Docker en Windows respecto a Linux?

Windows utiliza un grupo "docker-users" en lugar del grupo "docker" que se encuentra en los sistemas Linux. En Windows, añades usuarios a través de Administración de equipos o PowerShell con privilegios de administrador mediante el comando Añadir-MiembroDeGrupoLocal. A diferencia de Linux, Windows ofrece seguridad adicional mediante el Control de Aplicaciones de Windows Defender y los modos de aislamiento de Hyper-V. Sin embargo, al igual que en Linux, los usuarios deben desconectarse y volver a conectarse después de ser añadidos al grupo para que los cambios surtan efecto.


Dario Radečić's photo
Author
Dario Radečić
LinkedIn
Científico de Datos Senior con base en Croacia. Top Tech Writer con más de 700 artículos publicados, generando más de 10M de visitas. Autor del libro Automatización del aprendizaje automático con TPOT.
Temas

¡Aprende más sobre Docker con estos cursos!

Programa

Containerization and Virtualization with Docker and Kubernetes

13 hr
Learn the power of Docker and Kubernetes, this interactive track will allow you to build and deploy applications in modern environments.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

blog

Los 13 mejores proyectos de AWS: De principiante a profesional

Explora 13 proyectos prácticos de AWS para todos los niveles. Mejora tus conocimientos sobre la nube con aplicaciones prácticas del mundo real y la orientación de expertos.
Joleen Bothma's photo

Joleen Bothma

12 min

Tutorial

Cómo instalar y configurar MySQL en Docker

Aprende a instalar y configurar la base de datos MySQL dentro de contenedores Docker. El tutorial incluye conceptos como conectarse a servidores MySQL, ejecutar clientes MySQL para conectarse a contenedores, etc.
Bex Tuychiev's photo

Bex Tuychiev

12 min

Data Augmentation Header

Tutorial

Guía completa para el aumento de datos

Aprende sobre técnicas, aplicaciones y herramientas de aumento de datos con un tutorial de TensorFlow y Keras.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Tutorial

Tutorial de GitHub y Git para principiantes

Un tutorial para principiantes que muestra cómo funciona el control de versiones Git y por qué es crucial para los proyectos de ciencia de datos.
Abid Ali Awan's photo

Abid Ali Awan

9 min

Tutorial

Introducción a los disparadores SQL: Guía para desarrolladores

Aprende a utilizar los disparadores SQL para automatizar tareas, mantener la integridad de los datos y mejorar el rendimiento de la base de datos. Prueba ejemplos prácticos como los comandos CREATE, ALTER y DROP en MySQL y Oracle.
Oluseye Jeremiah's photo

Oluseye Jeremiah

13 min

Tutorial

Cómo utilizar GROUP BY y HAVING en SQL

Una guía intuitiva para descubrir los dos comandos SQL más populares para agregar filas de tu conjunto de datos
Eugenia Anello's photo

Eugenia Anello

6 min

Ver másVer más