Quando eu digito por exemplo docker run -it ubuntu bash, eu já não estou rodando e executando o bash? É necessário além disso rodar o docker exec?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Quando eu digito por exemplo docker run -it ubuntu bash, eu já não estou rodando e executando o bash? É necessário além disso rodar o docker exec?
Oi Felipe
Nem sempre você precisa do -it mesmo! Pra imprimir um acho "algum texto", por exemplo, você não precisaria. O comando acontece e sua iteração com o container acaba alí.
Mas faça um teste usando o exec para conectar no bash do seu container:
docker exec <container-id> bash
O que acontece? Em resumo, nada. O comando é executado, mas fica travado esperando algo acontecer. E você não consegue interagir com a instância, executar nenhum comando.
Faça o mesmo agora, usando o -it:
docker exec -it <container-id> bash
Algo como root@<container-id>:/# vai aparecer na tela pra você executar seus comandos lá.
Em resumo, o -i (iterative) mantém a entrada de dados aberta, para que você possa interagir, e o -t (tty) permite que você veja as interações no pseudo-terminal.
Faz sentido?
E aí Rodrigo, blz? Faz sim. Não sabia dessa do sem -it no exec que conecta mas fica travado.
Mas na verdade o que quis dizer foi que no comando docker run -it ubuntu bash ele cria e roda o container e no final já posso usar o bash estando já conectado no mesmo.
Porém na resposta do exercício ele diz pra executar e docker run -it ubuntu bash, depois o docker ps -a
e finalmente o docker exec -it d98d5602dc26 bash. Pelo que entendi apenas o primeiro comando já seria necessário para se conectar no bash do container que já esta rodando, sendo os outros dois desnecessários.
Oi Felipe
tem razão, só o primeiro sem dúvida fará o trabalho.
Vou pedir para nossos moderadores/revisores testarem em outros sistemas operacionais, pra ver se não é nenhuma particularidade de algum deles ou de alguma versão específica do docker, mas acredito que não.
muito obrigado pelo aviso, logo devemos mudar por lá (;
um abraço