Docker Community Forums

Share and learn in the Docker community.

How to make a service to use multiple network

Hi ,everyone, I have a requirement to write a docker-compose.yml which need to make one of service to use two network, one for the default for communication with each other service and one for the external bridge network for auto self discovery via nginx-proxy.

My docker-compose.yml like the belows.

version: '2'
services:
  dns-management-frontend:
    image: ......
    depends_on:
    - dns-management-backend
    ports:
    - 80
    restart: always
    networks:
      - default
      - bridge
  dns-management-backend:
    image:......
    depends_on:
    - db
    restart: always
    networks:
      - default
  db:
    image: ......
    volumes:
    - ./mysql-data:/var/lib/mysql
    restart: always
    networks:
      - default
  redis:
    image: redis
    ports:
    - 6379
    restart: always
    networks:
      - default
networks:
  default:
  bridge:
    external:
      name: bridge
    networks:
      - default

When I start with it, it gave me network-scoped alias is supported only for containers in user defined networks error. I have to remove the networks section in services, and after started, manually ran docker network connect <id_of_frontend_container> bridge to make it work.

Any advice on how to configure multiple network in docker-compose? I also have read https://docs.docker.com/compose/networking/, but it is too simple.