CodeGym /Kurse /Docker SELF /Arbeit mit Konfigurationen und Secrets

Arbeit mit Konfigurationen und Secrets

Docker SELF
Level 20 , Lektion 0
Verfügbar

6.1 Der Befehl docker config

Docker bietet eingebaute Mechanismen zum Verwalten von Konfigurationen und Geheimnissen, die das sichere und bequeme Verwalten von Konfigurationsdateien und sensiblen Daten in Containern ermöglichen. Diese Mechanismen tragen dazu bei, die Sicherheit zu erhöhen und die Verwaltung von Konfigurationen in verteilten Systemen zu vereinfachen. In dieser Vorlesung schauen wir uns an, wie die Befehle docker config und docker secret genutzt werden können, und geben Beispiele und Best Practices.

Grundlagen der Arbeit mit Konfigurationen

Der Befehl docker config ermöglicht das Verwalten von Konfigurationsdateien, die von Diensten in Docker Swarm genutzt werden können. Konfigurationen bieten eine bequeme Möglichkeit, Einstellungen und Parameter einer Anwendung zu übergeben.

Die Hauptbefehle von docker config

  1. docker config create — Erstellen einer neuen Konfiguration
  2. docker config ls — Liste aller Konfigurationen
  3. docker config inspect — Informationen über die Konfiguration abrufen
  4. docker config rm — Löschen der Konfiguration

Beispiel für die Nutzung von docker config

Erstellen einer Konfiguration

Zum Erstellen einer Konfiguration wird der Befehl docker config create genutzt. Als Beispiel erstellen wir eine Konfigurationsdatei für Nginx.

Erstelle die Datei nginx.conf:

nginx

user www-data;
worker_processes auto;
pid /run/nginx.pid;
        
events {
    worker_connections 768;
}
        
http {
    server {
        listen 80;
        location / {
            return 200 'Hallo, Welt!';
            add_header Content-Type text/plain;
        }
    }
}

Erstelle die Konfiguration in Docker:

Terminal

docker config create nginx_config ./nginx.conf

2. Liste aller Konfigurationen

Zum Anzeigen aller erstellten Konfigurationen wird der Befehl docker config ls genutzt:

Terminal

docker config ls

Ausgabe des Befehls:

Terminal

ID                                                                                       NAME           CREATED             UPDATED
f8f8ff8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8   nginx_config    vor 10 Sekunden     vor 10 Sekunden

3. Verwendung der Konfiguration in einem Dienst

Erstelle einen Dienst mit der erstellten Konfiguration:

Terminal

docker service create --name nginx --config source=nginx_config,target=/etc/nginx/nginx.conf -p 8080:80 nginx

4. Löschen der Konfiguration

Zum Löschen der Konfiguration wird der Befehl docker config rm genutzt:

Terminal

docker config rm nginx_config

6.2 Der Befehl docker secret

Der Befehl docker secret erlaubt es dir, "Secrets" wie Passwörter, API-Schlüssel und Zertifikate zu verwalten, die sicher von Diensten in Docker Swarm verwendet werden können. Secrets werden verschlüsselt gespeichert und sind nur für die Dienste zugänglich, die sie nutzen.

Wichtige Befehle von docker secret

  1. docker secret create — Erstellen eines neuen Secrets
  2. docker secret ls — Liste aller Secrets anzeigen
  3. docker secret inspect — Informationen zu einem Secret abrufen
  4. docker secret rm — Löschen eines Secrets

Beispiel für die Verwendung von docker secret

1. Erstellen eines Secrets

Um ein Secret zu erstellen, wird der Befehl docker secret create verwendet. Als Beispiel erstellen wir ein Secret für das Passwort der Datenbank.

Erstelle eine Datei db_password.txt:

Text

mysecretpassword

Erstelle ein Secret in Docker:

Terminal

docker secret create db_password ./db_password.txt

2. Liste aller Secrets

Um alle erstellten Secrets anzuzeigen, wird der Befehl docker secret ls verwendet:

Terminal

docker secret ls

Ausgabe des Befehls:

Terminal

ID                                                                                    NAME           CREATED             UPDATED
f8f8ff8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8   db_password    vor 10 Sekunden     vor 10 Sekunden

3. Verwendung eines Secrets in einem Service

Erstelle einen Service, der das erstellte Secret verwendet:

Terminal

docker service create --name postgres --secret db_password -e 
POSTGRES_PASSWORD_FILE=/run/secrets/db_password postgres

4. Löschen eines Secrets

Um ein Secret zu löschen, wird der Befehl docker secret rm verwendet:

Terminal

docker secret rm db_password

6.3 Praktische Beispiele und Best Practices

Praktische Beispiele und Best Practices

Beispiel 1: Nutzung von Konfigurationen und Secrets in einer Web-Anwendung

Erstellen einer Konfigurationsdatei und eines Secrets

Terminal

echo "user www-data;" > ./nginx.conf
echo "worker_processes auto;" >> ./nginx.conf
docker config create nginx_config ./nginx.conf

echo "meinGeheimesPasswort" > ./db_password.txt
docker secret create db_password ./db_password.txt

Erstellen von Services, die Konfigurationen und Secrets nutzen

Terminal

docker service create --name nginx --config source=nginx_config,target=/etc/nginx/nginx.conf -p 
8080:80 nginx

docker service create --name postgres --secret db_password -e 
POSTGRES_PASSWORD_FILE=/run/secrets/db_password postgres

Beispiel 2: Aktualisierung der Konfiguration

Aktualisierung des Inhalts der Konfigurationsdatei

Ändere die Datei nginx.conf:

nginx

user www-data;
worker_processes 4;

Erstellen einer neuen Konfigurationsversion

Terminal

docker config create nginx_config_v2 ./nginx.conf

Aktualisierung des Services mit der neuen Konfiguration

Terminal

docker service update --config-rm nginx_config --config-add 
source=nginx_config_v2,target=/etc/nginx/nginx.conf nginx
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION