Idealmente, contêineres devem ser gerenciados e executados pelo respectivo runtime do contêiner sem privilégios de raiz. Isso não é trivial, mas, quando alcançado, reduz a superfície de ataque e evita classes inteiras de problemas de segurança, notadamente, escalonamento de privilégios fora do contêiner. A comunidade tem discutido isso como contêineres sem raiz há algum tempo, e é parte da especificação do tempo de execução de contêiner aberto e sua implementação padrão runc, que sustenta o Kubernetes. Agora, o Docker 19.03 apresenta contêineres sem raiz como uma funcionalidade experimental. Embora totalmente funcional, a funcionalidade não trabalha ainda com várias outras funcionalidades, como controles de recursos cgroups e perfis de segurança AppArmor.