Я создал реплику mongodb в Docker на моей локальной машине. После настройки реплика работает, если я подключаюсь внутри контейнеров. Затем, когда я подключаю localhost: 30001,30002,30003 со своего компьютера, но вне контейнера, он говорит, что соединение не установлено, и выдается следующее сообщение об ошибке.
SERVER [node1:27017] (Type: UNKNOWN)
|_/ Connection error (MongoSocketOpenException): Exception opening socket
|____/ Unknown host: node3
SERVER [node2:27017] (Type: UNKNOWN)
|_/ Connection error (MongoSocketOpenException): Exception opening socket
|____/ Unknown host: node2
SERVER [node1:27017] (Type: UNKNOWN)
|_/ Connection error (MongoSocketOpenException): Exception opening socket
|____/ Unknown host: node1
Вот мой файл docker-comopse
version: '3'
services:
node1:
image: mongo
container_name: "node1"
networks:
- mongocluster
ports:
- 30001:27017
command: mongod --dbpath /data/db --replSet repset
node2:
image: mongo
container_name: "node2"
networks:
- mongocluster
ports:
- 30002:27017
command: mongod --dbpath /data/db --replSet repset
depends_on:
- node1
node3:
image: mongo
container_name: "node3"
networks:
- mongocluster
ports:
- 30003:27017
command: mongod --dbpath /data/db --replSet repset
depends_on:
- node2
networks:
mongocluster:
driver: bridge
И вот как я настроил кластер в mongodb
config = {
"_id": "repset",
"members": [
{
"_id": 0,
"host": "node1:27017"
},
{
"_id": 1,
"host": "node2:27017"
},
{
"_id": 2,
"host": "node3:27017"
}
]
}
Я понимаю, что мой локальный компьютер не может интерпретировать IP для узла 1, узла 2 и узла 3. Я использую его только для целей разработки, так какой самый быстрый (возможно, грязный) способ исправить это?