如何 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
为您服务。看看这个
我在 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
为您服务。看看这个