ein. Sie können Umgebungsvariablen über das Terminal verwenden:
$ docker run -d --name container_name \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=password \
mongo
Wenn Sie testen möchten, ob alles funktioniert:
$ docker exec -it mongo /bin/bash
$ mongo
$> use admin
$> db.auth("admin", passwordPrompt())
$> show dbs
Wenn Sie eine Datenbank beim ersten Ausführen instanziieren möchten, aktivieren Sie die Option b.
b. Sie können Umgebungsvariablen in Ihrer Docker-Stack-Bereitstellungsdatei verwenden oder eine Datei für die Versionen 3.4 bis 4.1 erstellen.
Da es auf dem Schnellreferenzteil des erläutert offiziellen Mongo BildsatzesMONGO_INITDB_ROOT_USERNAME und MONGO_INITDB_ROOT_PASSWORDin Ihrer YAML - Datei:
mongo:
image: mongo
environment:
MONGO_INITDB_ROOT_USERNAME: admin
MONGO_INITDB_ROOT_PASSWORD: password
Die Datei docker-entrypoint.sh im Mongo-Image prüft, ob diese beiden Variablen vorhanden sind, und setzt das --authFlag entsprechend.
c. Sie können auch Docker-Geheimnisse verwenden.
MONGO_INITDB_ROOT_USERNAMEund MONGO_INITDB_ROOT_PASSWORDwird indirekt von docker-entrypoint.sh von MONGO_INITDB_ROOT_USERNAME_FILEund MONGO_INITDB_ROOT_PASSWORD_FILEVariablen festgelegt:
mongo:
image: mongo
environment:
- MONGO_INITDB_ROOT_USERNAME_FILE=/run/secrets/db_root_username
- MONGO_INITDB_ROOT_PASSWORD_FILE=/run/secrets/db_root_password
secrets:
- db_root_username
- db_root_password
docker-entrypoint.sh konvertiert MONGO_INITDB_ROOT_USERNAME_FILEund MONGO_INITDB_ROOT_PASSWORD_FILEnach MONGO_INITDB_ROOT_USERNAMEund MONGO_INITDB_ROOT_PASSWORD.
Sie können MONGO_INITDB_ROOT_USERNAMEund MONGO_INITDB_ROOT_PASSWORDin Ihrem .shoder .jsSkripten im docker-entrypoint-initdb.dOrdner verwenden, während Sie die Datenbankinstanz initialisieren.
Wenn ein Behälter zum ersten Mal gestartet wird es Dateien mit den Erweiterungen ausgeführt wird .shund .jsdass gefunden werden /docker-entrypoint-initdb.d. Dateien werden in alphabetischer Reihenfolge ausgeführt. .jsDateien werden von Mongo unter Verwendung der von der MONGO_INITDB_DATABASEVariablen angegebenen Datenbank ausgeführt , sofern vorhanden, oder auf andere Weise getestet. Sie können auch die Datenbank innerhalb des .jsSkripts wechseln .
Diese letzte Methode befindet sich nicht in den Referenzdokumenten, sodass sie ein Update möglicherweise nicht überlebt.