Windows PowerShell下Docker部署MongoDB副本集连接问题求助
问题:Docker容器化NodeJS服务与MongoDB副本集部署故障
在Windows PowerShell环境中使用Docker部署NodeJS服务与MongoDB副本集,初始docker-compose.yml运行时出现权限报错,调整配置后容器可正常启动,但存在以下两个问题:
- MongoDB Compass无法通过尝试的任意URI连接副本集
- NodeJS服务启动时抛出
MongooseServerSelectionError: getaddrinfo ENOTFOUND mongo1错误
初始docker-compose.yml配置
version: '3.8' services: mongo1: image: mongo:4.4 container_name: mongo1 command: ["--replSet", "rs0", "--bind_ip_all", "--port", "27017", "--keyFile", "/data/mongodb-keyfile"] ports: - 27017:27017 restart: always environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: example volumes: - mongo1_data:/data/db - ./mongodb-keyfile:/data/mongodb-keyfile:ro mongo2: image: mongo:4.4 container_name: mongo2 command: ["--replSet", "rs0", "--bind_ip_all", "--port", "27017", "--keyFile", "/data/mongodb-keyfile"] ports: - 27018:27017 restart: always environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: example volumes: - mongo2_data:/data/db - ./mongodb-keyfile:/data/mongodb-keyfile:ro mongo3: image: mongo:4.4 container_name: mongo3 command: ["--replSet", "rs0", "--bind_ip_all", "--port", "27017", "--keyFile", "/data/mongodb-keyfile"] ports: - 27019:27017 restart: always environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: example volumes: - mongo3_data:/data/db - ./mongodb-keyfile:/data/mongodb-keyfile:ro volumes: mongo1_data: mongo2_data: mongo3_data:
初始配置下尝试过的MongoDB URI
mongodb://mongo1:27017/?replicaSet=myReplicaSet mongodb://127.0.0.1:27017,127.0.0.1:27018,127.0.0.1:27019/?replicaSet=myReplicaSet
调整后的docker-compose.yml配置
version: '3.8' services: mongo1: image: mongo:latest container_name: mongo1 hostname: mongo1 ports: - 27017:27017 environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: example MONGO_REPLICA_SET_NAME: "rs0" mongo2: image: mongo:latest container_name: mongo2 hostname: mongo2 ports: - 27018:27017 environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: example MONGO_REPLICA_SET_NAME: "rs0" mongo3: image: mongo:latest container_name: mongo3 hostname: mongo3 ports: - 27019:27017 environment: MONGO_INITDB_ROOT_USERNAME: root MONGO_INITDB_ROOT_PASSWORD: example MONGO_REPLICA_SET_NAME: "rs0"
调整后尝试过的MongoDB URI
mongodb://127.0.0.1:27017,127.0.0.1:27018,127.0.0.1:27019/?replicaSet=myReplicaSet mongodb://localhost:27017,localhost:27018,localhost:27019/?replicaSet=myReplicaSet mongodb://mongo1:27017/?replicaSet=myReplicaSet mongodb://mongo1:27017,mongo2:27018,mongo3:27019/?replicaSet=myReplicaSet
内容的提问来源于stack exchange,提问作者steve123
相关产品推荐
相关产品推荐

