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 comoalpineo versiones verificadas de proveedores oficiales. Evita imágenes desconocidas o sin mantenimiento. -
No ejecutes contenedores como root
Usa el flag--useral correr contenedores o define el usuario en elDockerfile:FROM alpine RUN adduser -D appuser USER appuser -
Restringe capacidades del contenedor
Usa--cap-drop=ALLy 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.