Uma pesquisa no Google leva-me a esta . Eu pessoalmente não acho que é uma solução legal e limpa, mas deve ser capaz de fazer o trabalho. O que esta solução faz é o seguinte:
Em vez de iniciar diretamente o programa no contêiner, há um lançamento de duas etapas em andamento: Primeiro, um script pequeno é iniciado com o docker, que basicamente cria um novo usuário no contêiner e executa o programa principal como este novo usuário. Este é o script que é usado lá, /home/r/script.sh
sendo o programa que deve ser iniciado:
#!/bin/bash
adduser --disabled-password --gecos '' r
adduser r sudo
echo '%sudo ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
su -m r -c /home/r/script.sh
Se você quer um shell como esse usuário, você pode colocar o bash em seu lugar.