Docker Compose

Le fichier compose.yaml et ses clés (services, image, build, ports, environment, volumes, depends_on, networks, restart, healthcheck), le réseau par défaut et la résolution par nom de service, les commandes up, down, ps, logs et exec.

  • 25 cartes
  • 5 thèmes
  • Gratuit

Le programme, thème par thème

Le poids de chaque thème suit celui que lui donne l'examen.

  1. Notions
  2. Questions
  3. Ranger et relier
  4. Mises en situation
  5. Comprendre

Quelques cartes du deck

  • Docker Compose : de quoi s'agit-il ?

    Voir la réponse

    Outil qui décrit dans un seul fichier plusieurs conteneurs formant une application, avec leurs réseaux et leurs volumes, et les pilote d'une seule commande.

    Il remplace une pile de longues commandes docker run par un fichier versionné : docker compose up -d suffit pour tout démarrer.

  • Quelle commande démarre en arrière-plan tous les services du fichier ?

    • docker compose up -d
    • docker compose start -d
    • docker compose run -d
    • docker compose build -d
    Voir la réponse

    docker compose up -d

    up crée (réseau, volumes, conteneurs) puis démarre ; -d rend la main. start ne relance que des conteneurs déjà créés, et build ne fabrique que des images.

  • docker compose down supprime les conteneurs et le réseau ; ajouter l'option … supprime aussi les … déclarés dans le fichier.

    Voir la réponse

    docker compose down supprime les conteneurs et le réseau ; ajouter l'option -v supprime aussi les volumes déclarés dans le fichier.

    Sans -v, les données des volumes nommés survivent à un down : c'est ce qui permet de recréer l'application sans perdre la base.

  • compose.yaml : de quoi s'agit-il ?

    Voir la réponse

    Fichier YAML dont la clé racine services liste les conteneurs de l'application, chacun avec son image, ses ports, ses variables et ses volumes.

    En YAML, la structure vient de l'indentation, avec des espaces et jamais de tabulations : un décalage de deux espaces change le sens ou rend le fichier invalide.

  • L'API rend connect ECONNREFUSED 127.0.0.1:5432 alors que le conteneur db tourne. Quelle est la cause probable, et la solution ?

    • Le port 5432 n'est pas publié ; ajouter ports: ["5432:5432"] au service db
    • L'API vise localhost, donc elle-même ; remplacer l'hôte par le nom du service, db
    • La base n'est pas sur le même réseau que l'API ; déclarer un réseau backend pour chacun
    • L'API démarre trop vite ; ajouter restart: always pour qu'elle réessaie
    Voir la réponse

    L'API vise localhost, donc elle-même ; remplacer l'hôte par le nom du service, db

    127.0.0.1 est l'adresse du conteneur de l'API. Entre services Compose, il n'y a pas besoin de publier de port : le réseau par défaut les relie, et seul le nom de service permet de se joindre.