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.