Crear en Docker una red donde se puedan alojar tus contenedores


Cuando existen infraestructuras bastante grandes pueden producirse colisiones de subred, si trabaja con Docker y desea evitar este problema se recomienda crear una propia red de acopladores y luego alojar todos los contenedores en esa red. Al momento de crear la red podemos especificar el rango de IP que se debe utilizar para los contenedores de modo que usted pueda estar seguro de que no se superpone con ninguna IP de sus otras redes.

Para crear la red en docker podemos usar el siguiente comando:

docker network create --subnet 10.10.0.0/16 mynet


Luego debemos ejecutar los contenedores con el comando: --network mynet


ejemplo:

docker container run -d -p 8080:80 --network mynet --name web nginx


Podemos inspeccionar el contenedor usando:

docker container inspect nginx


En uno de las lineas del json devuelto por docker se podrá apreciar la ip:

"IPAdress": "10.10.0.2",


Para hacerlo en docker-compose, en cada servicio se debe apuntar a la red creada anteriormente ( mynet) de esta manera:

version: '3.4'
    services:
        web:
            image: jboss/wildfly
            ports: 
                - 18080:8080
            networks:
                - mynet
        db:
            image: postgres:9.5.6
            ports:
                - 15432:5432
            networks:
                - mynet

networks:
    mynet:
        external:
            name: mynet

Comentarios