Por padrão, o docker não permite que o ambiente externo acesse algum serviço rodando dentro de uma imagem.
Para que isso possa ser feito, é necessário **expor a porta do container para o ambiente externo** e, para fazer isso, primeiramente, é preciso que a imagem que esteja querendo rodar **exponha a porta desejada**.
Isso é feito com o comando **EXPOSE** do `Dockerfile`, como no exemplo:
```Dockerfile
EXPOSE 3000 8080 9999
```
Uma imagem Docker pode expor uma série de portas!<br>
Se a imagem que está sendo rodada seja de autoria do desenvolvedor, basta adicionar a porta desejada ao **EXPOSE**.<br>
Caso o desenvolvedor esteja rodando uma imagem pronta, do **docker-hub**, por exemplo, geralmente a documentação das portas expostas pela imagem ficam na própria página da mesma no **docker-hub**!
Tendo as portas expostas na imagem, basta expor elas para o ambiente externo ao executar, algo que pode ser feito de duas formas:
-**Via interface do docker desktop**<br>
Digamos que o desenvolvedor queira executar um container e, dentro dele, ele rodará duas aplicações, uma rodando na porta 4200, e outra na porta 3000.\
E ele queira acessar essas duas aplicações da máquina local dele.\
Ele poderá fazer isso facilmente pela interface do docker desktop, basta mapear a porta do container para a porta da máquina local: