Aplicações Práticas do Mapeamento de Portas
Executando Servidores Web em Contêineres
Um dos casos de uso mais comuns para o mapeamento de portas é executar servidores web em contêineres Docker. Ao mapear a porta do servidor web do contêiner para uma porta na máquina hospedeira, pode aceder facilmente à aplicação web através de um navegador.
Por exemplo, para executar um servidor web Nginx num contêiner Docker e mapear a porta 80 da máquina hospedeira para a porta 80 no contêiner, pode utilizar o seguinte comando:
docker run -p 80:80 nginx
Expondo Portas de Base de Dados
Outro caso de uso comum para o mapeamento de portas é expor portas de base de dados de um contêiner para a máquina hospedeira. Isto permite que aplicações externas se conectem à base de dados que está a ser executada dentro do contêiner.
Por exemplo, para executar um banco de dados MySQL num contêiner Docker e mapear a porta 3306 da máquina hospedeira para a porta 3306 no contêiner, pode utilizar o seguinte comando:
docker run -p 3306:3306 mysql
Aceder a Serviços Containerizados Remotamente
O mapeamento de portas também permite aceder a serviços containerizados a partir de locais remotos. Ao mapear uma porta na máquina hospedeira para uma porta no contêiner, pode conectar-se ao serviço containerizado a partir de qualquer máquina que tenha acesso à máquina hospedeira.
Isto é particularmente útil para serviços que precisam de ser acedidos por múltiplos utilizadores ou de diferentes locais, como aplicações web, APIs ou ferramentas de monitorização.
Escalando Aplicações Containerizadas
Ao executar múltiplas instâncias de uma aplicação containerizada, o mapeamento de portas torna-se crucial para o equilíbrio de carga e escalabilidade. Ao mapear diferentes portas da máquina hospedeira para a mesma porta do contêiner, pode distribuir o tráfego de entrada por várias instâncias de contêiner.
Isto permite escalar facilmente a sua aplicação para cima ou para baixo com base na procura, sem ter de se preocupar com conflitos de portas ou problemas de acessibilidade.