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

Os endereços IP estáticos não mudam quando os contêineres ou serviços param e iniciam, tornando-os úteis para redes permanentes. A atribuição de endereços IP estáticos a contêineres do Docker é uma maneira fácil de torná-los mais acessíveis.

índice

  1. Por que usar um IP estático?
  2. Configuração de IP estático
  3. Usando o Docker Compose

Por que usar um IP estático?

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

Se você precisar definir um endereço IP público para um contêiner, recomendamos usar associações de porta. Você pode "publicar" portas no contêiner do Docker para torná-lo acessível a partir do host. Embora existam configurações de rede mais avançadas, esta é de longe a mais simples e comum. Por exemplo, vinculando a porta 80 (HTTP) no host para apontar para um contêiner NGINX:

 execução do docker --publish=80:8080 nginx

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

O Docker vem com uma rede padrão, mas se você criar sua própria rede, poderá fornecer aliases aos contêineres quando eles forem iniciados nessa rede. Esse alias será resolvido automaticamente para o IP privado do contêiner. 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 example --name nginx -d nginx docker network connect example --alias mongohost mongodb

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

No entanto, ainda há muitas ocasiões em que você desejará especificar manualmente um endereço IP privado, como acessar contêineres diretamente do host. Você ainda precisará usar uma rede personalizada do Docker para fazer isso, mas é fácil de configurar.

Configuração de IP estático

Primeiro, você precisará configurar uma rede Docker e, como estamos interessados ​​no endereço IP, você precisará especificar uma sub-rede fixa:

 criação de rede docker --subnet=172.20.0.0/16 customnetwork

Em seguida, 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 registrando-o no contêiner com exec -t bin/bash ou verificando a lista de contêineres do Docker:

 docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' name_or_id

Usando o Docker Compose

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

 versão: '2' serviços: webserver: imagem: nginx container_name: web-server networks: customnetwork: ipv4_address: 172.20.0.10 networks: customnetwork: ipam: config: - subnet: 172.20.0.0/16
  • Como alterar, adicionar e remover controles remotos Git
  • Porque o Sublime Text é ótimo para escritores, não apenas para programadores.

descubra mais conteúdo

O que é um amplificador integrado?

Google Pixel Watch também tem detecção de queda, mas não até o próximo ano

As melhores xícaras de café aquecidas de 2022

Como automatizar seu iPhone com base na hora, atividade ou localização

"Isso deve ter sido antes do meu tempo"

Por que a NASA enviou Snoopy para a Lua? – Revisão Geek

Deixe uma resposta Cancelar resposta

Ir arriba