Refuerza la seguridad en Docker en minutos
Evita errores comunes de seguridad en Docker aplicando estas prácticas inmediatas:
-
Usa imágenes oficiales y minimalistas
Prefiere imágenes comoalpine
o versiones verificadas de proveedores oficiales. Evita imágenes desconocidas o sin mantenimiento. -
No ejecutes contenedores como root
Usa el flag--user
al correr contenedores o define el usuario en elDockerfile
:FROM alpine RUN adduser -D appuser USER appuser
-
Restringe capacidades del contenedor
Usa--cap-drop=ALL
y agrega solo lo necesario con--cap-add
:docker run \ --cap-drop=ALL \ --cap-add=NET_BIND_SERVICE \ imagen:tag
–cap-drop=ALL
Esto quita todas las capacidades que Docker por defecto le da al proceso dentro del contenedor. Es la forma más estricta de aplicar el principio de “menos privilegios posibles”: arrancas sin permiso para hacer casi nada de bajo nivel.
–cap-add=NET_BIND_SERVICE
Vuelves a añadir solo la capacidad que necesitas:
NET_BIND_SERVICE
Permite abrir sockets en puertos “privilegiados” (es decir, puertos por debajo de 1024, como 80 o 443).
Sin ella, tu aplicación dentro del contenedor no podría escuchar en esos puertos bajos. -
Activa seccomp, AppArmor o SELinux
Usa perfiles de seguridad predeterminados o personalizados:docker run --security-opt seccomp=default.json ...
No montes el socket Docker en contenedores
Evita exponer
/var/run/docker.sock
, ya que otorga control total sobre el host.
Revisa regularmente tus imágenes con docker scan o herramientas como Trivy para detectar vulnerabilidades conocidas.
Aplicar estas medidas mejora significativamente la postura de seguridad sin complicar el entorno de desarrollo.