CodeGym /Cours /Docker SELF /Travailler avec les configurations et les secrets

Travailler avec les configurations et les secrets

Docker SELF
Niveau 20 , Leçon 0
Disponible

6.1 Commande docker config

Docker fournit des mécanismes intégrés pour gérer les configurations et les secrets, ce qui permet de gérer de manière sécurisée et pratique les fichiers de configuration et les données confidentielles dans les conteneurs. Ces mécanismes aident à améliorer la sécurité et simplifient la gestion des configurations dans les systèmes distribués. Dans cette conférence, on va voir comment utiliser les commandes docker config et docker secret, avec des exemples et des meilleures pratiques.

Les bases du travail avec les configurations

La commande docker config permet de gérer les fichiers de configuration qui peuvent être utilisés par les services dans Docker Swarm. Les configurations offrent une manière pratique de transmettre les paramètres et réglages de l'application.

Commandes de base de docker config

  1. docker config create — Créer une nouvelle configuration
  2. docker config ls — Lister toutes les configurations
  3. docker config inspect — Obtenir des infos sur une configuration
  4. docker config rm — Supprimer une configuration

Exemple d'utilisation de docker config

Créer une configuration

Pour créer une configuration, on utilise la commande docker config create. Voici un exemple pour créer un fichier de configuration pour Nginx.

Créez un fichier nginx.conf:

nginx

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

Créez une configuration dans Docker :

Terminal

docker config create nginx_config ./nginx.conf

2. Lister toutes les configurations

Pour voir toutes les configurations créées, utilisez la commande docker config ls:

Terminal

docker config ls

Résultat de la commande :

Terminal

ID                                                                                       NAME           CREATED             UPDATED
f8f8ff8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8   nginx_config    10 seconds ago     10 seconds ago

3. Utiliser une configuration dans un service

Créez un service en utilisant la configuration créée :

Terminal

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

4. Supprimer une configuration

Pour supprimer une configuration, utilisez la commande docker config rm:

Terminal

docker config rm nginx_config

6.2 Commande docker secret

La commande docker secret permet de gérer les "secrets", comme les mots de passe, les clés API et les certificats, qui peuvent être utilisés de manière sécurisée par les services dans Docker Swarm. Les secrets sont stockés de manière chiffrée et ne sont accessibles qu'aux services qui les utilisent.

Commandes principales docker secret

  1. docker secret create — Création d'un nouveau secret
  2. docker secret ls — Liste de tous les secrets
  3. docker secret inspect — Obtenir des infos sur un secret
  4. docker secret rm — Suppression d'un secret

Exemple d'utilisation de docker secret

1. Création d'un secret

Pour créer un secret, utilisez la commande docker secret create. Par exemple, créons un secret pour le mot de passe d'une base de données.

Créez le fichier db_password.txt :

Texte

monmotdepasse

Créez le secret dans Docker :

Terminal

docker secret create db_password ./db_password.txt

2. Liste de tous les secrets

Pour afficher tous les secrets créés, utilisez la commande docker secret ls :

Terminal

docker secret ls

Sortie de la commande :

Terminal

ID                                                                                    NAME           CREATED             UPDATED
f8f8ff8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8f8   db_password    10 secondes ago    10 secondes ago

3. Utilisation d'un secret dans un service

Créez un service en utilisant le secret créé :

Terminal

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

4. Suppression d'un secret

Pour supprimer un secret, utilisez la commande docker secret rm :

Terminal

docker secret rm db_password

6.3 Exemples pratiques et meilleures pratiques

Exemples pratiques et meilleures pratiques

Exemple 1 : Utilisation de configurations et de secrets dans une application web

Création d’un fichier de configuration et d’un secret

Terminal

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

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

Création de services utilisant des configurations et des secrets

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

Exemple 2 : Mise à jour de la configuration

Mise à jour du contenu du fichier de configuration

Modifiez le fichier nginx.conf :

nginx

user www-data;
worker_processes 4;

Création d’une nouvelle version de la configuration

Terminal

docker config create nginx_config_v2 ./nginx.conf

Mise à jour du service avec la nouvelle configuration

Terminal

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