CodeGym /Cursos /Docker SELF /Redirecionamento de portas

Redirecionamento de portas

Docker SELF
Nível 12 , Lição 1
Disponível

7.1 Fundamentos do Redirecionamento de Portas (Port forwarding)

O redirecionamento de portas é uma funcionalidade importante no Docker que permite que aplicações dentro de containers fiquem acessíveis externamente. Essa função é necessária para se conectar a servidores web, bancos de dados ou outros serviços que estão rodando dentro dos containers, seja a partir da máquina host ou até mesmo de outras redes.

Por padrão, os containers operam em uma rede isolada. Para tornar um serviço dentro de um container acessível, o Docker redireciona as portas do container para as portas da máquina host.

Para redirecionar portas, se utiliza o parâmetro -p ou --publish no comando docker run.

Sintaxe


docker run -p [HOST_PORT]:[CONTAINER_PORT] [OPÇÕES] IMAGE [COMMAND] [ARG...]

Onde:

  • HOST_PORT: porta na máquina host através da qual o tráfego será encaminhado.
  • CONTAINER_PORT: porta dentro do container para onde o tráfego será redirecionado.
  • OPÇÕES: parâmetros adicionais para configurar o container.
  • IMAGE: imagem a partir da qual o container será criado.
  • COMMAND: comando a ser executado dentro do container.
  • ARG...: argumentos para o comando.

Exemplo de uso básico

Neste exemplo, a porta 80 do container, onde um servidor web Nginx está rodando, será redirecionada para a porta 8080 da máquina host. Após isso, você pode acessar o servidor web no navegador pelo endereço http://localhost:8080.


docker run -d -p 8080:80 nginx

7.2 Outras Opções de Redirecionamento de Portas

1. Redirecionamento Múltiplo de Portas

O Docker permite redirecionar várias portas ao mesmo tempo. Para isso, são usadas várias opções -p.

Exemplo

Neste exemplo, a porta 80 do container é redirecionada para a porta 8080 do host, e a porta 443 do container — para a porta 8443 do host.



docker run -d -p 8080:80 -p 8443:443 nginx

2. Redirecionamento de Portas com IP Específico

Você pode especificar um IP específico ao qual a porta redirecionada estará vinculada. Isso é especialmente útil se a máquina host tiver várias interfaces de rede e você quer limitar o acesso ao container.

Exemplo:

Neste exemplo, a porta 80 do container é redirecionada para a porta 8080 apenas na interface 127.0.0.1 da máquina host. Isso significa que o acesso ao serviço será possível apenas na própria máquina host.


docker run -d -p 127.0.0.1:8080:80 nginx

3. Redirecionamento de Faixa de Portas

Se você precisa redirecionar várias portas de uma vez, o Docker suporta o uso de intervalos.

Exemplo:

Neste exemplo, as portas de 7000 a 8000 do container são redirecionadas para as portas de 7000 a 8000 da máquina host.


docker run -d -p 7000-8000:7000-8000 someimage

7.3 Cenários práticos de uso

1. Acesso ao servidor web

O redirecionamento de portas é mais frequentemente usado para garantir o acesso a servidores web rodando dentro de containers.


docker run -d -p 8080:80 nginx 

Após executar este comando, o servidor web Nginx, que opera na porta 80 do container, estará acessível na porta 8080 da máquina host.

2. Acesso ao banco de dados

O redirecionamento de portas também é útil para acessar bancos de dados rodando em containers.


docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=mysecretpassword postgres

Neste exemplo, o PostgreSQL, que opera na porta 5432 do container, estará acessível na porta 5432 da máquina host.

3. Testes e desenvolvimento

Containers Docker são frequentemente usados para criar ambientes de teste isolados. O redirecionamento de portas permite que os desenvolvedores rodem e testem aplicações como se elas estivessem trabalhando em um ambiente real.


docker run -d -p 8080:80 -p 8443:443 myapp

Neste exemplo, a aplicação está sendo testada nas portas 8080 e 8443, que correspondem às portas padrão usadas em um ambiente de produção.

7.4 Recomendações adicionais

1. Proteção de portas

Quando você redireciona portas, não esqueça da segurança. Portas abertas podem ser alvo de ataques. Redirecione só as portas que realmente precisam e usa um firewall pra limitar o acesso.

2. Firewalls e NAT

Pra melhorar a segurança e gerenciar o tráfego, usa firewalls e Network Address Translation (NAT). Isso vai ajudar a limitar o acesso aos seus serviços e controlar as conexões de rede.

3. Monitoramento e logs

Configura monitoramento e coleta de logs pra ficar de olho no tráfego nas portas redirecionadas. Isso vai ajudar a perceber e reagir mais rápido a atividades suspeitas.

Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION