2015-12-22 8 views
7

Wenn eine PostgreSQL-Datenbank in einem Container Docker ausgeführt wird, die documentation für das offizielle PostgreSQL Docker Bild gibt an, dass das Administrator-Passwort sollte wie in einer Umgebungsvariable gesetzt werden:Angeben von Superuser PostgreSQL Passwort für ein Docker Container

docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres 

Für diejenigen, die in ihren Skripten kein Nur-Text-Passwort fest codieren möchten, gibt es sicherere Optionen, die berücksichtigt werden sollten?

Antwort

4

Das Eingeben von Konfigurationseinstellungen als Umgebungsvariablen ist der von der Website 12 factor app empfohlene Ansatz für die Anwendungskonfiguration.

Alternativ können Sie Ihre eigenen Container erstellen, die es Konfiguration von benutzerdefinierten Konfigurationsdatei lautet:

docker run -d mydockerapp --config mydevconfig.yaml 

Aber wirklich die Verwendung von Umgebungsvariablen hat die Kante in Bezug auf Flexibilität weil es auf allen Plattformen allgegenwärtig ist. Um Umgebungsvariablen schmackhafter zu machen, können Sie sie in einer Datei angeben. Dies wird zumindest ein böswilliger Benutzer auf derselben Maschine gewährleisten keine Anmeldeinformationen von einem Prozess Auflistung auflesen konnte:

$ cat env.db 
POSTGRES_DB=myappdb 
POSTGRES_USER=admin 
POSTGRES_PASSWORD=pleasechangeme 

$ docker run --name postgres --env-file=env.db -d postgres 

Schließlich entdeckte ich, dass es eine Reihe von herausragenden Feature-Anfragen für eine bessere geheime Unterstützung von Docker sind:

nach meiner Erfahrung Bequemlichkeit hat eine Gewohnheit Sicherheit trumpfen, so stelle ich mir es an der Zeit für eine akzeptable Lösung nehmen ausreichend Geist-Anteile zu gewinnen. Persönlich forsee ich eine Lösung ab, dass emuliert, was das Kubernetes Projekt wird mit verschlüsselten Datenmengen zu tun:

Verwandte Themen