Docker Compose¶
Définition¶
Docker Compose permet de :
- manipuler facilement une pile logicielle complète (plusieurs conteneurs en interaction)
- créer un réseau pour les composants de cette même pile.
Exemple¶
Issu d'un exemple générique d'un tuto DevSecOps.
services:
service1: # Nom du premier service
image: nom_de_l_image # Image Docker utilisée pour ce service
ports:
- "port_hôte:port_conteneur" # Mappage des ports
environment:
- VARIABLE_1=valeur_1 # Variables d'environnement
volumes:
- /chemin/hote:/chemin/conteneur # Mappage de volumes
depends_on:
- service2 # Dépendances entre les services
service2:
# Configuration du deuxième service
# ...
networks:
mynetwork: # Définition d'un réseau personnalisé
driver: bridge # Type de réseau
volumes:
workspace:
Toutes les spécifications sont données par compose-spec.json
qui utilise le schéma https://json-schema.org/draft/2019-09/schema#.
Premier fichier Compose¶
Lancer une application de micro-service via Docker Compose :
-
Copier le fichier
docker-compose.yml
qui permet de lancer un seul service, le serveur Jupyter :services: jupyter: image: myjupyter container_name: jupyter volumes: - $LOCAL_PATH:/home/jovyan/work/local ports: - "127.0.0.1:8888:8888"
Remarque
Il est possible de trouver
version: "3"
en haut des fichiersdocker-compose.yml
, cela a été supprimé depuis Docker Compose v2 (2022) qui utilise toujours le dernier schéma des fichiers Compose. -
Exporter la variable d’environnement LOCAL_PATH :
Remarque
Il est préférable d'utiliser un fichier
.env
pour gérer les variables d'environement. Il suffit de le mettre dans le même répertoire quedocker-compose.yml
. -
Exécuter le fichier YAML avec Docker Compose :
-
Exécuter des instructions dans le conteneur :
shell
docker compose exec jupyter
-
Terminer la pile logicielle :
Deuxième fichier Compose : utilisation avancée¶
- avec les balises, les sondes healthcheck
Vers Kubernetes¶
Kompose permet de convertir un descripteur docker-compose.yml
en manifestes Kubernetes.
- Pour l'installer :
- Pour convertir le fichier Compose :
Et cela produit :
Tests avec K3s¶
WIP