Docker-compose
On a appris à faire des conteneurs. Mais souvent une application web ou autre nécessite plusieurs conteneurs. Par exemple :
- Une base de données
 - Un serveur front-back C'est dans ce cas que l'on utilise les orchestrateurs de conteneurs.
 
Podman/Docker-compose
D'autres orchestrateurs existent comme openshift ou kubernetes
Je vais prendre exemple sur ce projet : openshift ou kubernetes
Pour installer docker-compose, installez le paquet avec votre gestionnaire de paquets préféré. Pour podman-compose allez plus bas.
docker-compose.yml
version: "3.9"
volumes:
  data: 
services:
  mypgdb:
    image: docker.io/library/postgres:latest
    container_name: mypgdb
    restart: unless-stopped
    env_file:
      - django.env
    volumes:
      - data:/var/lib/postgresql/data
    networks:
      - network-benevalibre
  django:
    image: bene:latest
    container_name: django
    restart: unless-stopped
    env_file:
      - django.env
    networks:
      - network-benevalibre
    ports:
      - "5000:80"
networks:
  network-benevalibre: # Définition d'un réseau personnalisé
    driver: bridge # Type de réseau
Analysons un peu le code :
- volumes : permets de créer des volumes qu'on garde sur le disque même si le conteneur est arrêté. Ça permet par exemple de garder les documents de la base de données.
 - services : on définie les conteneurs qui doivent tourner ensemble. On les nomme et on les définit.
 - image : emplacement de l'image docker builder (construite)
 - container_name: nom du conteneur
 - restart: condition de redémarage du conteneur
 - env_file : si vous utilisez un fichier avec des variables d'environnement
 - networks : definie les reseaux accessible au conteneneur (voir plus bas)
 - network : détermine les reseaux entre les conteneurs
 - nom-du-réseaux
 - driver : type de réseaux
 
Pour le type de réseaux en docker, ce sont les mêmes que pour les VM. Plus d'information su la documentation officielle
Utilisation
Warning
Pour Podman, installez le packet podman-compose et dans les dépendances optionnelles, vous trouverez souvent un paquet pour le dns rootless. Exemple : aardvark-dns
Il faut d'abord avoir les bonnes images disponibles. N'oubliez pas de construire les images avant avec la commande :
Version podman
Version docker
Une fois les images construites, vous pouvez lancer les conteneurs avec la commande :
Version podman
Version Docker
Le '-d' permets de détacher podman-compose de la console.
SI vous voulez arretez les conteneurs :
Version podman
Version docker