Olá, Rafael. Tudo bem?
Quando você usa docker run -it
, o -i
é uma contração da opção --interactive
. É ela que fornece acesso ao STDIN (Standard Input = Entrada Padrão) do container e permite que você passe comandos para ele. Você consegue fazer o run
sem o -t
e ainda assim executar comandos, pois o que o -t
vai fazer é te dar um prompt do terminal, mas é o modo interativo que te permite passar comandos e receber respostas.
Você pode fazer o teste de executar o docker run -t ubuntu
e vai até ter acesso ao prompt, mas não vai ter resposta para comandos que você executar (para sair, vai precisar fechar o terminal e parar o container manualmente com docker stop [ID_DO_CONTAINER]
).
Quando você encerra o container que foi iniciado com -i
ele mantém o acesso ao STDIN, por isso que você consegue executar de novo podendo passar comandos.
Então, para que você possa iniciar/reinicar um container e passar comandos à ele, você precisa usar pelo menos a opção -i
.
Espero ter ajudado. Se tiver alguma dúvida, é só dizer.