GNU/Linux >> Tutoriales Linux >  >> Panels >> Docker

Cómo asignar una IP estática a un contenedor Docker

Las direcciones IP estáticas no cambian cuando los contenedores o servicios se detienen y se inician, lo que los hace útiles para redes permanentes. Asignar direcciones IP estáticas a los contenedores de Docker es una manera fácil de hacerlos más accesibles.

¿Por qué usar una IP estática?

Hay dos tipos de "IP estática"; direcciones IP privadas que se usan para redes internas dentro de un servidor y direcciones IP públicas que se usan para conectarse fuera del servidor, a menudo a través de Internet.

Si necesita configurar una dirección IP pública para un contenedor, querrá usar enlaces de puerto. Puede "publicar" puertos en el contenedor Docker para que sean accesibles desde el host. Si bien existen configuraciones de red más avanzadas, esta es, con mucho, la más fácil y común. Por ejemplo, enlazar el puerto 80 (HTTP) en el host para apuntar a un contenedor NGINX:

docker run --publish=80:8080 nginx

Si desea crear una dirección IP privada estática, debe considerar si necesita usar una. La mayoría de las veces, querrá una IP estática para comunicarse con un contenedor desde otro o desde el host. En la mayoría de los casos, la red integrada de Docker puede manejar esto.

Docker viene con una red predeterminada, pero si crea la suya propia, puede otorgar alias de contenedores cuando se inicien en esa red. Este alias se resolverá automáticamente en la IP privada del contenedor. Por ejemplo, el contenedor NGINX aquí puede acceder a la instancia de MongoDB con la cadena de conexión mongodb://mongohost:27017 .

docker network create example
docker run --net example --name nginx -d nginx
docker network connect example --alias mongohost mongodb

Para obtener más información, puede leer la documentación de Docker sobre redes puente definidas por el usuario.

Sin embargo, todavía hay muchas ocasiones en las que querrá especificar manualmente una dirección IP privada, como acceder a contenedores directamente desde el host. Aún necesitará usar una red Docker personalizada para hacerlo, pero es fácil de configurar.

Configuración de direcciones IP estáticas

Primero, deberá configurar una red Docker y, dado que nos preocupamos por la dirección IP, deberá especificar una subred fija:

docker network create --subnet=172.20.0.0/16 customnetwork

RELACIONADO: ¿Qué son las subredes y cómo afectan a mi red?

Luego, puede ejecutar un contenedor, especificando la red con --net y especificando la IP con -ip bandera:

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

Puede verificar que la dirección sea correcta al verificarla en el contenedor con exec -t bin/bash o inspeccionando la lista de contenedores de Docker:

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

Uso de Docker Compose

Docker Compose es una herramienta que se utiliza para lanzar múltiples contenedores con configuraciones predefinidas. Esto incluye la configuración de redes con subredes específicas, y puede adjuntar contenedores a redes con direcciones IP fijas utilizando la ipv4_address bloque de configuración que se muestra aquí:

version: '2'
services:
  webserver:
    image: nginx
    container_name: web-server
    networks:
      customnetwork:
        ipv4_address: 172.20.0.10
networks:
  customnetwork:
    ipam:
      config:
        - subnet: 172.20.0.0/16

Docker
  1. Cómo instalar WordPress usando Docker

  2. ¿Cómo ejecutar un programa dentro de un contenedor Docker?

  3. Cómo ejecutar MySQL en un contenedor Docker

  4. Cómo instalar Vim en un contenedor Docker

  5. Cómo salir de un contenedor Docker

Cómo ejecutar PHPMyAdmin en un contenedor Docker

Cómo ejecutar Grafana en un contenedor Docker

Cómo agregar un volumen a un contenedor Docker existente

Cómo configurar Pihole en un contenedor Docker

Cómo configurar un contenedor Apache Docker

Cómo ejecutar contenedores Docker