1
resposta

docker start -a -i não funcionando para todas os containers

faço:

docker run -it ubuntu

Com o id desse container dou um start nesse container atrelando com o meu terminal:

docker start -a -i ID_CONTAINER

Funciona corretamente.

Porém, seu eu crio sem o parametro it, eu nao consigo dar start depois

docker run ubuntu

e dou

 docker start -a -i ID_CONTAINER_NOVO

ele não entra no bash do container. Eu continuo no bash do docker host

É possível criar o container sem o -it e startar depois?

1 resposta

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.