En teoría, los contenedores se deben controlar desde el respectivo tiempo de ejecución del contenedor, sin privilegios de usuario root. Esto no es sencillo ni trivial pero cuando se consigue, reduce la superficie de ataque y previene muchos problemas de seguridad, en particular la escalación de privilegios fuera del contenedor. Ya desde hace tiempo se habla de los contenedores sin raíces, y es parte de la especificación del tiempo de ejecución de contenedores abiertos y sus estándares de implementación runc, parte de Kubernetes. Por otra parte, Docker 19.03 introduce contenedores sin privilegios, como una funcionalidad experimental. Aunque esta funcionalidad no va bien todavía con varias de otras funcionalidades como los controles de recursos cgroups y los perfiles de seguridad AppArmor.