Ich versuche, mein MongoDB, das in einem Docker-Container ausgeführt wird, von außen zugänglich zu machen.
Ich habe herausgefunden, dass es mit Docker Compose oder der Datei mongod.conf möglich sein sollte, die Host-Bindung dort festzulegen, aber da ich das offizielle MongoDB-Docker-Image verwende, habe ich kein Compose durchgeführt und kann die Conf-Datei auch nicht finden.
hier ist, was ich getan habe und was ich bisher versucht habe:
- ein Netzwerk geschaffen
Docker-Netzwerk erstellt meinen Mongo-Cluster
- habe 3 Mongo-DB-Instanzen ausgeführt
docker run --name mongo-node1 -d --net mein-mongo-cluster mongo --replSet "rs0" docker run --name mongo-node2 -d --net mein-mongo-cluster mongo --replSet "rs0" docker run --name mongo-node3 -d --net mein-mongo-cluster mongo --replSet "rs0"
führte den ersten
docker exec -it mongo-node1 mongo
Richten Sie die Konfiguration für den Replikationssatz ein
konfiguration = { "_id" : "rs0", "Mitglieder" : [ { "_id" : 0, "Host" : "mongo-node1:27017" }, { "_id" : 1, "Host" : "mongo-node2:27017" }, { "_id" : 2, "Host" : "mongo-node3:27017" } ] }
rs.initiate(Konfiguration) rs.initialisieren
einen Administratorbenutzer erstellt
benutze admin db.createUser( { user: "admin", pwd: "admin", roles: [ { role: "userAdminAnyDatabase", db: "admin" }, >"readWriteAnyDatabase" ] } )
Ich habe versucht, die Container mit den folgenden Anweisungen auszuführen:
--expose=27017
--auth
--entrypoint 'mongod --bind_ip_all'
-> führt zu einem Fehler.
Es wird innerhalb von AWS ausgeführt und die eingehende Regel für 27017 ist korrekt eingerichtet.
Die Antwort ist immer:
couldn't connect to server ec2-52-59-191-1.eu-central-1.compute.amazonaws.com:27017, connection attempt failed: SocketException: Error connecting to ec2-52-59-191-1.eu-central-1.compute.amazonaws.com:27017 (52.59.191.1:27017) :: caused by :: No connection could be made because the target machine actively refused it. :