Referencia: https://docs.docker.com/compose/networking/#use-a-pre-existing-network

Mi caso

Tengo 2 docker compose

  • En uno tengo una BD Mongo con información de usuarios
  • En el otro necesito consumir los datos de esa BD

Problema

Por defecto, compose crea todos los servicios en una misma red aislada. En este caso yo necesito una vía de comunicación entre 2 containers de diferentes redes.

Solución

  1. Crear una red de Docker docker network create shared-mongo
  2. Agregar esa red a ambos docker-compose
  3. Especificar que los servicios mongo y web en mi caso, deben utilizar esta red.
mongodb:
  image: mongo:3.4
  ###
  networks:
    - shared-mongo
 
networks:
  shared-mongo:
    external: true
    name: shared-mongo
web:
  build:
    context: .
    dockerfile: Dockerfile
  ###
	networks:
    - shared-mongo
 
networks:
  shared-mongo: 
    external: true
    name: shared-mongo

Desventajas

  • Tener que crear la red de Docker manualmente