Header Ads

Como atribuir um IP estático a um contêiner Docker

Os endereços IP estáticos não mudam quando os contêineres ou serviços são interrompidos e iniciados, o que os torna úteis para uma rede permanente. A atribuição de endereços IP estáticos de contêineres Docker é uma maneira fácil de torná-los mais acessíveis.

Por que usar um IP estático?

Existem dois tipos de “ IP estático ”; endereços IP privados usados ​​para rede interna dentro de um servidor e endereços IP públicos usados ​​para se conectar fora do servidor, geralmente pela Internet.

Se precisar configurar um endereço IP público para um contêiner, você &’ deverá usar ligações de porta. Você pode “ publicar ” portas no contêiner do Docker para serem acessíveis a partir do host. Embora existam configurações de rede mais avançadas, esta é de longe a mais fácil e comum. Por exemplo, vincular a porta 80 (HTTP) no host para apontar para um contêiner NGINX:

 docker run --publish = 80: 8080 nginx 

Se você deseja criar um endereço IP privado estático, deve considerar se precisa usar algum. Na maioria das vezes, você deseja que um IP estático converse com um contêiner de outro ou do host. Na maioria dos casos, a rede integrada do Docker pode lidar com isso.

O Docker vem com uma rede padrão, mas se você criar a sua própria, poderá dar aliases aos contêineres quando inicializado nessa rede. Este alias será resolvido para o IP privado do contêiner automaticamente. Por exemplo, o contêiner NGINX aqui pode acessar a instância do MongoDB com a string de conexão mongodb: // mongohost: 27017.

 docker network criar exemplo docker run --net exemplo --name nginx -d nginx docker network conectar exemplo --alias mongohost mongodb 

Publicidade

Para saber mais, você pode ler a documentação do Docker sobre redes de ponte definidas pelo usuário.

No entanto, ainda haverá muitas vezes em que você &’ desejará especificar manualmente um endereço IP privado, como acessar containers diretamente do host. Você ainda precisará usar uma rede Docker personalizada para fazer isso, mas é fácil de configurar.

Configurando IPs estáticos

Primeiro, você precisará configurar uma rede Docker e, como nos preocupamos com o endereço IP, você precisará especificar uma sub-rede fixa:

 criação da rede docker --subnet = 172.20.0.0 / 16 rede personalizada 

RELACIONADO: o que são sub-redes e como elas afetam minha rede?

Então, você pode executar um contêiner, especificando a rede com o sinalizador --net e especificando o IP com o sinalizador -ip:

 docker run --net customnetwork --ip 172.20.0.10 -d container 

Você pode verificar se o endereço está correto verificando-o no contêiner com exec -t bin / bash ou inspecionando a lista de contêineres do Docker:

 docker inspect -f '{} {{. IPAddress}} {}' name_or_id 

Usando o Docker Compose

O Docker Compose é uma ferramenta usada para iniciar vários contêineres com configurações predefinidas. Isso inclui a configuração de redes com sub-redes específicas e você pode anexar contêineres a redes com IPs fixos usando o bloco de configuração ipv4_address mostrado aqui:

 versão: '2' serviços: servidor web: imagem: nginx container_name: redes de servidores web: customnetwork: ipv4_address: 172.20.0.10 redes: customnetwork: ipam: config: - sub-rede: 172.20.0.0/16

Nenhum comentário