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
docker config create
— Créer une nouvelle configurationdocker config ls
— Lister toutes les configurations-
docker config inspect
— Obtenir des infos sur une configuration 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
:
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 :
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
:
docker config ls
Résultat de la commande :
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 :
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
:
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
docker secret create
— Création d'un nouveau secretdocker secret ls
— Liste de tous les secretsdocker secret inspect
— Obtenir des infos sur un secretdocker 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
:
monmotdepasse
Créez le secret dans Docker :
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
:
docker secret ls
Sortie de la commande :
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éé :
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
:
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
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
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
:
user www-data;
worker_processes 4;
Création d’une nouvelle version de la configuration
docker config create nginx_config_v2 ./nginx.conf
Mise à jour du service avec la nouvelle configuration
docker service update --config-rm nginx_config --config-add
source=nginx_config_v2,target=/etc/nginx/nginx.conf nginx
GO TO FULL VERSION