如何 docker 中的 运行 服务从 docker 网络外部组合

how to run services in docker compose outside from docker network

我在 docker 中有 运行 的应用程序,它是 mongodb,我从我的 docker compose 构建它,但我只能 运行 它在 docker 里面,不能在我的本地主机中 运行 这是我的 docker 撰写:

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:

我正在尝试构建 mongodb 副本集,但我确实喜欢从我的本地主机 mongo 运行 它,这怎么可能?

为了能够从本地主机 运行 它,您需要公开端口。 添加 ports: - 27017:27017 为您服务。看看这个