Wie kann ich die Authentifizierung in MongoDB über Docker aktivieren?
Möchte ich auf die spin-up ein Andockfenster für mongodb:latest
aber erlauben Sie nur bestimmten Benutzer(N) den Zugriff auf bestimmte db(s) (d.h. aktivieren --auth
). Niemand sollte Zugriff auf mongodb überhaupt! Wie sollte ich das tun, als Teil des docker-initiation?
BTW data directory
sitzt auf dem host mit dem folgenden Befehl während der initiation: -v /my/own/datadir:/data/db
.
InformationsquelleAutor der Frage user706838 | 2016-01-01
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie einen Blick auf:
werden Sie feststellen, dass es zwei Variablen, die in der
docker-entrypoint.sh
:Können Sie nutzen Sie, um die setup-root-Benutzer. Zum Beispiel können Sie verwenden Sie folgenden
docker-compose.yml
Datei:Nun beim starten des Containers durch
docker-compose up
beachten Sie folgende Einträge:Hinzufügen von benutzerdefinierten Anwender, abgesehen von root verwenden Sie die entrypoint exectuable Skript (unter $PWD/mongo-entrypoint dir, wie es montiert ist, in
docker-compose
zu entrypoint):Entrypoint-Skript ausgeführt wird und zusätzliche Benutzer erstellt werden.
InformationsquelleAutor der Antwort jbochniak
Das Dockerfile für das offizielle mongo Bild ist hier. Der Standard-Befehl mongod Sie können Sie aber überschreiben, fügen Sie die --auth-Schalter vorausgesetzt, der Benutzer ist bereits konfiguriert.
Wenn der Benutzer erstellt werden, dann müssen Sie volume mount ein startup-Skript in
/entrypoint.sh
zu ersetzen, die Standard-startup-Skript und dann das Skript Benutzer anlegen und starten Sie mongo mit der auth-Schalter.InformationsquelleAutor der Antwort Usman Ismail
@jbochniak: Danke, obwohl beim ersten Lesen dachte ich, hab ich auch schon entdeckt, alle diese, es stellte sich heraus, dass Ihr Beispiel (insb. die version von Mongo-Andockfenster Bild) mir geholfen!
Dieser version (v3.4.2) und die v3.4 (derzeit entsprechende v3.4.3) noch 'Unterstützung ' MONGO_INITDB_ROOT', beschrieben durch die Variablen, als der v3.5 (zumindest tags '3' und 'latest') funktionieren NICHT wie beschrieben in Ihrer Antwort und in der Dokumentation.
Schnell musste ich einen Blick in den code auf GitHub, sah aber ähnlich wie die Verwendung dieser Variablen und nicht finden konnte den Fehler sofort, sollte dies tun, bevor der Einreichung dieses als bug...
InformationsquelleAutor der Antwort Frederik
Hier ist, was ich habe, das gleiche problem, und es funktionierte.
Laufen die mongo-Andockfenster-Instanz auf Ihrem server
Öffnen bash auf dem Laufenden docker-Instanz.
Referenz- https://github.com/arunoda/meteor-up-legacy/wiki/Accessing-the-running-Mongodb-docker-container-from-command-line-on-EC2
Geben Sie die mongo-shell, indem Sie "mongo".
In diesem Beispiel wird ein Benutzer namens ian und geben Sie den Benutzer-Lesen & schreiben der Zugriff auf die cool_db Datenbank.
Referenz: https://ianlondon.github.io/blog/mongodb-auth/ (Zunächst nur)
Ausfahrt aus dem mongod-shell und bash.
Führen Sie nun die mongo-Andockfenster mit auth aktiviert.
Referenz: Wie aktivieren Sie die Authentifizierung auf MongoDB über das Andockfenster? (Usman Ismail Antwort auf diese Frage)
War ich in der Lage, eine Verbindung zu der Instanz läuft auf einer Google-Cloud-server von meinem lokalen windows-laptop mit dem nachstehenden Befehl.
Referenz: wie kann ich eine Verbindung zu einem remote-mongo-server von Mac OS terminal
InformationsquelleAutor der Antwort Sankaran Srinivasan
verwenden Sie diese Bilder Update:
Mit docker-Komponieren.yml
InformationsquelleAutor der Antwort Mark Simon
Einfach mal ein .js-Datei in die Eingabe-Punkt-init-Ordner funktioniert dies
z.B. entrypoint.js
docker-Komponieren.yml:
Tut den rest per hand oder mehr der gleichen Werke.
Wenn Sie möchten, können Sie auch drop ein .sh-Datei in den init-Ordner zu bereinigen, die Dateien so, dass Sie nicht rumfliegen: zz-cleanup.sh.
InformationsquelleAutor der Antwort Shapeshifter
Ich kommentieren möchte, aber nicht genug Ruf.
Den Benutzer-hinzufügen von ausführbaren Skript oben gezeigt hat, geändert werden, mit
--authenticationDatabase admin und NEWDATABASENAME.
https://i.stack.imgur.com/MdyXo.png
InformationsquelleAutor der Antwort Che-Hao Kang