Вчера я создал набор реплик, используя Docker-compose, на основе приведенных здесь инструкций:
https://www.youtube.com/watch?v=mlw7vWISaF4
Все контейнеры созданы, и мне удалось заполнить данные какну, так что с помощью Robo3T я могу просматривать свои коллекции.Я сделал это, так как мне нужен монго-соединитель для подключения MongoDB к Elasticsearch.
Это файл docker-compose.yml:
version: '3'
services:
mongo-rs0-1:
image: "mongo-start"
build: ./mongo-rs0-1
ports:
- "27017:27017"
volumes:
- ./mongo-rs0-1/data:/data/db
depends_on:
- "mongo-rs0-2"
- "mongo-rs0-3"
mongo-rs0-2:
image: "mongo:3.6.4"
command: --replSet rs0 --smallfiles --oplogSize 128
ports:
- "27018:27017"
volumes:
- ./mongo-rs0-2/data:/data/db
mongo-rs0-3:
image: "mongo:3.6.4"
command: --replSet rs0 --smallfiles --oplogSize 128
ports:
- "27019:27017"
volumes:
- ./mongo-rs0-3/data:/data/db
setup-rs:
image: "setup-rs"
build: ./setup
depends_on:
- "mongo-rs0-1"
mongo-db-seeder:
build:
context: ./mongo-db-seed
dockerfile: ./Dockerfile.dev
volumes:
- ./mongo-db-seed/seeddata:/opt/seeddata
depends_on:
- "web-app"
command: "./import_mongo.sh"
adminmongo:
image: "mrvautin/adminmongo"
ports:
- "1234:1234"
#Test Application
web-app:
image: docker-node-express-mongoreplicaset-app
build: ./web-site
ports:
- "3000:3000"
volumes:
- ./web-site:/usr/src/app
- /usr/src/app/node_modules
depends_on:
- "setup-rs"
Это replica.js, который настраиваетнабор реплик;
rsconf = {
_id : "rs0",
members: [
{ _id : 0, host : "mongo-rs0-1:27017" },
{ _id : 1, host : "mongo-rs0-2:27017" },
{ _id : 2, host : "mongo-rs0-3:27017" }
]
}
rs.initiate(rsconf);
rs.conf();
Я установил Elasticsearch, и он работает на порту 9200 в ожидании построения индекса.
Это мой файл хоста (etc / hosts), на котором я работаюos x.
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
Однако, когда я запускаю эту команду (все контейнеры и Elasticsearch работают)
mongo-connector -m localhost: 27017 -t localhost: 9200-dastic2_doc_manager
Я получаю эту ошибку:
ServerSelectionTimeoutError: mongo-rs0-3: 27017: [Errno 8] имя узла или имя сервера указано или не известно, mongo-rs0-1: 27017: [Errno 8] не указано ни имя узла, ни имя сервера, ни неизвестно, mongo-rs0-2: 27017: [Errno 8] не указано ни имя узла, ни имя сервера
IУ меня был хороший поиск этим утром, и я не могу найти ничего, что указывает на проблему.Набор реплик работает нормально, Elasticsearch запущен, но чего-то не хватает.