As imagens do Docker podem especificar que um determinado comando deve ser executado por padrão, usando a diretiva CMD no Dockerfile . E:
Se o usuário especificar argumentos para
docker run, eles substituirão o padrão especificado emCMD.
Como acontece, o comando padrão especificado para o Dockerfile do Ubuntu é, de fato, bash:
CMD ["/bin/bash"]
Assim, para o caso específico da imagem do Ubuntu, docker run ... ubuntu /bin/bash não é diferente de docker run ... ubuntu .
Claro, isso não precisa ser verdade sempre. Um Dockerfile para um mecanismo de banco de dados pode executar o comando do banco de dados por padrão. Nesse caso, se você precisar de um shell interativo, precisará fazer docker run ... /bin/bash .
Em geral, você não pode assumir que docker run lhe dará um shell interativo. É mais seguro especificar /bin/bash se você precisar de um shell.