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
docker config create
— Erstellen einer neuen Konfigurationdocker config ls
— Liste aller Konfigurationen-
docker config inspect
— Informationen über die Konfiguration abrufen 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
:
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:
docker config create nginx_config ./nginx.conf
2. Liste aller Konfigurationen
Zum Anzeigen aller erstellten Konfigurationen wird der Befehl docker config ls
genutzt:
docker config ls
Ausgabe des Befehls:
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:
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:
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
docker secret create
— Erstellen eines neuen Secretsdocker secret ls
— Liste aller Secrets anzeigendocker secret inspect
— Informationen zu einem Secret abrufendocker 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
:
mysecretpassword
Erstelle ein Secret in Docker:
docker secret create db_password ./db_password.txt
2. Liste aller Secrets
Um alle erstellten Secrets anzuzeigen, wird der Befehl docker secret ls
verwendet:
docker secret ls
Ausgabe des Befehls:
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:
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:
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
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
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
:
user www-data;
worker_processes 4;
Erstellen einer neuen Konfigurationsversion
docker config create nginx_config_v2 ./nginx.conf
Aktualisierung des Services mit der neuen Konfiguration
docker service update --config-rm nginx_config --config-add
source=nginx_config_v2,target=/etc/nginx/nginx.conf nginx
GO TO FULL VERSION