Search code examples
mongodbdockerdocker-composedocker-network

how to run services in docker compose outside from docker network


I have app that run in docker, it is mongodb and I build it from my docker compose , but I only be able to run it inside the docker , can't run from in my local host this is my docker compose:

version: "3.7"

services:
  mongodb01:
    image: "bitnami/mongodb:4.2"
    hostname: mongodb01.dev.com
    ports:
      - 27017:27017
    restart: always
    environment:
      - MONGODB_ADVERTISED_HOSTNAME=mongodb01.dev.com
      - MONGODB_REPLICA_SET_MODE=primary
      - MONGODB_REPLICA_SET_NAME=rs0
      - MONGODB_ROOT_PASSWORD=password123
      - MONGODB_REPLICA_SET_KEY=replicasetkey123
      - MONGODB_ENABLE_DIRECTORY_PER_DB=yes
    volumes:
      - "mongodb01_data:/bitnami/mongodb"
    networks:
      mongodb:
        aliases:
          - mongodb01.dev.com

  mongodb02:
    image: "bitnami/mongodb:4.2"
    hostname: mongodb02.dev.com
    ports:
      - 27018:27018
    restart: always
    depends_on:
      - mongodb01
    environment:
      - MONGODB_ADVERTISED_HOSTNAME=mongodb02.dev.com
      - MONGODB_REPLICA_SET_MODE=secondary
      - MONGODB_REPLICA_SET_NAME=rs0
      - MONGODB_PRIMARY_HOST=mongodb01.dev.com
      - MONGODB_PRIMARY_ROOT_PASSWORD=password123
      - MONGODB_REPLICA_SET_KEY=replicasetkey123
      - MONGODB_ENABLE_DIRECTORY_PER_DB=yes
      - MONGODB_PORT_NUMBER=27018
    volumes:
      - "mongodb02_data:/bitnami/mongodb"
    networks:
      mongodb:
        aliases:
          - mongodb02.dev.com

  mongodb03:
    image: "bitnami/mongodb:4.2"
    hostname: mongodb03.dev.com
    ports:
      - 27019:27019
    restart: always
    depends_on:
      - mongodb02
    environment:
      - MONGODB_ADVERTISED_HOSTNAME=mongodb03.dev.com
      - MONGODB_REPLICA_SET_MODE=secondary
      - MONGODB_REPLICA_SET_NAME=rs0
      - MONGODB_PRIMARY_HOST=mongodb01.dev.com
      - MONGODB_PRIMARY_ROOT_PASSWORD=password123
      - MONGODB_REPLICA_SET_KEY=replicasetkey123
      - MONGODB_ENABLE_DIRECTORY_PER_DB=yes
      - MONGODB_PORT_NUMBER-27019
    volumes:
      - "mongodb03_data:/bitnami/mongodb"
    networks:
      mongodb:
        aliases:
          - mongodb03.dev.com

volumes:
  mongodb01_data:
  mongodb02_data:
  mongodb03_data:

networks:
  mongodb:

I am trying to build mongodb replicaset, but I do love to run it from my localhost mongo , how can it make possible ??


Solution

  • To ba able to run it from local host, you need to expose the ports. Add ports: - 27017:27017 to your service. Take a look at this post