docker -i fornece um shell não interativo ( -i significa interativo para o docker, não para o bash dentro dele).
Você pode verificar isso executando o seguinte comando (variável $- includes i se o bash for interativo):
echo $- |grep i && echo i am interactive || echo i am non-interactive
Este bash não interativo não exibe o prompt de comando, é difícil determinar quando o comando de longa execução terminou seu trabalho, você não pode usar o histórico de comandos, e programas baseados em tty parecem uma bagunça.
Teste vim (reclama sobre Output/Input is not a terminal , parece e se comporta de maneira estranha)
ou algum jogo parecido com rogue (por exemplo, crawl simplesmente se recusa a trabalhar).
Por outro lado, docker -it fornece um shell interativo comum com prompt de comando (que você pode ajustar via $PS1 )
e histórico de comandos (incluindo Ctrl-r ).
Quando um comando termina, é claramente visível por causa de programas que exigem prompt e tty funcionam bem.
Então, se você for digitar comandos manualmente no shell, use docker -it .