Pergunta original: Como permitir que o usuário gire novos contêineres por conta própria e não acesse os outros contêineres?
( Esta foi a minha resposta original, mas talvez eu tenha entendido mal a questão ou a pergunta não foi tão clara, eu mantive a solução original aqui mesmo assim )
O Docker não oferece esse recurso por conta própria, mas há várias maneiras de fazer isso.
A ideia é que os comandos do docker exijam que o usuário esteja no grupo sudo ou docker para executar, portanto, se você deseja que o usuário gire um novo contêiner, em vez de adicionar o usuário ao sudo ou ao grupo docker que fornece acesso total para todos os comandos do docker, você pode colocar na lista de permissões apenas vários comandos do docker para esse usuário.
Por exemplo, se você quiser permitir ao usuário tom executar o seguinte contêiner:
sudo docker container run --it --name ubuntu-tom ubuntu:latest bash
Você pode adicionar a seguinte linha ao seu arquivo sudoers executando sudo visudo :
tom ALL=NOPASSWD: /usr/bin/docker container run --it --name ubuntu-tom ubuntu:latest bash
Isso permite que o usuário execute este comando do docker como root sem precisar de uma senha. Quaisquer outros comandos do docker permanecem indisponíveis para o usuário tom.
Outra alternativa é configurar o shell restrito, mas não entrarei em detalhes aqui.
Pergunta atualizada: como limitar o usuário a gerenciar novos contêineres?
Não tenho conhecimento de uma possível solução usando apenas o Docker.
Parece que você precisa de um orquestrador como o Kubernetes ou o ECS.
Desta forma, o orquestrador possui o daemon do docker e você pode utilizar a camada de permissão fornecida pelo orquestrador. Este artigo fornece um ótimo exemplo de restringir o acesso do usuário a um espaço para nome.