Olá, Flávio. Tudo bem?
Você pode iniciar um container tendo acesso ao seu terminal usando os parâmetros -it
ao executar o comando docker run
.
Se você executar
docker run -it -p 8080:3000 flavio/node
Quando a imagem for colocada para rodar, ela vai te dar acesso ao shell e você vai poder navegar pelo sistema de arquivos.
Se a imagem já estiver rodando, você pode executar docker ps
para pegar o ID
do container desejado e executar
docker exec -it [ID-do-container] /bin/bash
para ter acesso ao shell, podendo acessar os arquivos.
Quando você coloca o EXPOSE 3000
, você está instruindo ao docker que ele deixe a porta disponível para conexões. Já passando o parâmetro -p 8080:3000
, você define que as conexões que forem feitas na porta 8080 do host serão atreladas, redirecionadas, à porta 3000 do container que foi exposta. Por isso que sua aplicação dentro do container pode receber as requisições.
Espero ter ajudado. Se tiver alguma dúvida, é só dizer.