Comment utiliser la commande docker compose unpause pour reprendre les services

DockerDockerBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce lab, vous apprendrez à utiliser la commande docker compose unpause pour reprendre des services en pause. Nous commencerons par créer un fichier docker-compose.yml simple pour définir un service web basique en utilisant l'image Nginx.

Après la configuration, vous démarrerez les services avec docker compose up, puis les mettrez en pause avec docker compose pause. Enfin, vous utiliserez docker compose unpause pour reprendre les services et vérifier qu'ils fonctionnent correctement. Cet exercice pratique démontrera l'application concrète de la mise en pause et de la reprise des services Docker Compose.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL docker(("Docker")) -.-> docker/ContainerOperationsGroup(["Container Operations"]) docker(("Docker")) -.-> docker/ImageOperationsGroup(["Image Operations"]) docker/ContainerOperationsGroup -.-> docker/run("Run a Container") docker/ContainerOperationsGroup -.-> docker/ps("List Running Containers") docker/ImageOperationsGroup -.-> docker/pull("Pull Image from Repository") subgraph Lab Skills docker/run -.-> lab-555095{{"Comment utiliser la commande docker compose unpause pour reprendre les services"}} docker/ps -.-> lab-555095{{"Comment utiliser la commande docker compose unpause pour reprendre les services"}} docker/pull -.-> lab-555095{{"Comment utiliser la commande docker compose unpause pour reprendre les services"}} end

Créer un fichier docker-compose.yml simple

Dans cette étape, nous allons créer un fichier docker-compose.yml basique. Ce fichier est au cœur de Docker Compose, définissant les services, réseaux et volumes pour votre application. Avant de commencer, nous devons installer Docker Compose car il n'est pas préinstallé dans cet environnement.

D'abord, installons Docker Compose. Nous allons télécharger la dernière version stable et la rendre exécutable.

sudo curl -L "https://github.com/docker/compose/releases/download/v2.20.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

Maintenant, vérifions l'installation en contrôlant la version.

docker-compose --version

Vous devriez voir les informations de version s'afficher dans la console, confirmant que Docker Compose est correctement installé.

Ensuite, accédez au répertoire ~/project, qui est votre répertoire de travail pour ce lab.

cd ~/project

Nous allons maintenant créer un fichier nommé docker-compose.yml dans ce répertoire. Ce fichier définira un service simple utilisant l'image nginx. Nous utiliserons l'éditeur nano pour créer et modifier le fichier.

nano docker-compose.yml

Dans l'éditeur nano, collez le contenu suivant :

version: "3.8"
services:
  web:
    image: nginx:latest
    ports:
      - "80:80"

Analysons ce fichier docker-compose.yml :

  • version: '3.8' spécifie la version du format de fichier Docker Compose
  • services: définit les différents services composant votre application
  • web: est le nom de notre service. Vous pouvez nommer vos services comme vous le souhaitez
  • image: nginx:latest spécifie l'image Docker à utiliser pour ce service. Ici, nous utilisons la dernière version de l'image officielle Nginx. Comme cette image pourrait ne pas être présente localement, Docker Compose la téléchargera automatiquement depuis Docker Hub au démarrage du service
  • ports: mappe les ports entre la machine hôte et le conteneur. "80:80" mappe le port 80 de l'hôte vers le port 80 du conteneur. Cela signifie que vous pourrez accéder au serveur web Nginx dans le conteneur en visitant http://localhost (ou l'adresse IP de la VM) depuis votre machine hôte

Après avoir collé le contenu, enregistrez le fichier en appuyant sur Ctrl + O, puis sur Entrée pour confirmer le nom du fichier, et enfin sur Ctrl + X pour quitter l'éditeur nano.

Vous avez maintenant créé avec succès votre premier fichier docker-compose.yml. Dans l'étape suivante, nous utiliserons ce fichier pour démarrer le service Nginx.

Démarrer les services avec docker compose up

Dans cette étape, nous allons utiliser la commande docker-compose up pour démarrer les services définis dans notre fichier docker-compose.yml. Cette commande construit, (re)crée, démarre et attache les conteneurs pour un service.

Assurez-vous d'être dans le répertoire ~/project où vous avez créé le fichier docker-compose.yml à l'étape précédente.

cd ~/project

Maintenant, exécutez la commande suivante pour démarrer le service Nginx :

docker-compose up -d

Examinons cette commande :

  • docker-compose up démarre les services définis dans le fichier docker-compose.yml
  • -d exécute les conteneurs en mode détaché, ce qui signifie qu'ils fonctionneront en arrière-plan sans bloquer votre terminal

Lorsque vous exécutez cette commande pour la première fois, Docker Compose téléchargera l'image nginx:latest depuis Docker Hub si elle n'est pas déjà présente sur votre système. Vous verrez une sortie indiquant le téléchargement de l'image ainsi que la création et le démarrage du conteneur.

Pour vérifier que le conteneur est en cours d'exécution, vous pouvez utiliser la commande docker ps.

docker ps

Vous devriez voir une entrée pour le service web (ou un nom similaire basé sur votre répertoire et nom de service) avec le statut Up. Cela indique que le conteneur Nginx est en cours d'exécution.

Vous pouvez également vérifier que le serveur web Nginx est accessible en utilisant curl pour accéder au port exposé 80.

curl http://localhost:80

Vous devriez voir le code HTML de la page d'accueil par défaut de Nginx dans votre terminal. Cela confirme que le serveur Nginx fonctionne dans le conteneur et est accessible depuis votre machine hôte via le port mappé.

Mettre en pause les services avec docker compose pause

Dans cette étape, nous allons apprendre à mettre en pause les services en cours d'exécution à l'aide de la commande docker-compose pause. Mettre un conteneur en pause suspend temporairement tous ses processus. Cela diffère de l'arrêt d'un conteneur qui termine les processus.

Assurez-vous d'être dans le répertoire ~/project où se trouve votre fichier docker-compose.yml et où vos services sont en cours d'exécution.

cd ~/project

Maintenant, exécutez la commande suivante pour mettre en pause le service web :

docker-compose pause web

Vous devriez voir une sortie indiquant que le service web est en cours de mise en pause.

Pour vérifier que le conteneur est en pause, vous pouvez utiliser la commande docker ps.

docker ps

Consultez la colonne STATUS pour le conteneur du service web. Elle devrait maintenant afficher un statut comme Up ... (Paused). Cela confirme que les processus du conteneur sont suspendus.

Lorsque le conteneur est en pause, le serveur web Nginx qu'il contient ne traite pas activement les requêtes. Si vous essayez d'y accéder avec curl, la requête risque de rester bloquée ou d'expirer car le serveur ne répond pas.

curl http://localhost:80

Cette commande ne renverra pas immédiatement la page d'accueil de Nginx comme elle le faisait lorsque le conteneur était en cours d'exécution. Vous devrez peut-être appuyer sur Ctrl + C pour interrompre la commande après un certain temps.

La mise en pause est utile lorsque vous devez interrompre temporairement un service sans perdre son état actuel.

Reprendre les services avec docker compose unpause

Dans cette étape, nous allons reprendre l'exécution du service mis en pause à l'aide de la commande docker-compose unpause. Cette commande relance les conteneurs qui ont été mis en pause.

Assurez-vous d'être dans le répertoire ~/project où se trouve votre fichier docker-compose.yml.

cd ~/project

Maintenant, exécutez la commande suivante pour reprendre le service web :

docker-compose unpause web

Vous devriez voir une sortie indiquant que le service web est en cours de reprise.

Pour vérifier que le conteneur n'est plus en pause et fonctionne normalement, vous pouvez à nouveau utiliser la commande docker ps.

docker ps

Observez la colonne STATUS pour le conteneur du service web. Elle devrait maintenant afficher un statut comme Up ... sans l'indicateur (Paused). Cela signifie que les processus du conteneur ont repris.

Après la reprise, le serveur web Nginx à l'intérieur du conteneur devrait à nouveau traiter activement les requêtes. Vous pouvez le confirmer en utilisant curl pour accéder au port exposé 80.

curl http://localhost:80

Cette fois, vous devriez immédiatement recevoir le code HTML de la page d'accueil par défaut de Nginx, comme après le démarrage initial du conteneur. Cela confirme que le service est à nouveau pleinement opérationnel.

La reprise est l'opération inverse de la mise en pause, vous permettant de relancer rapidement un service depuis son état suspendu.

Vérifier le bon fonctionnement des services après la reprise

Dans cette étape, nous allons effectuer une vérification finale pour nous assurer que le service Nginx fonctionne correctement après avoir été repris. Bien que nous ayons vérifié l'état du conteneur à l'étape précédente, il est recommandé de confirmer que l'application à l'intérieur du conteneur répond également comme prévu.

Assurez-vous d'être dans le répertoire ~/project.

cd ~/project

Nous utiliserons à nouveau la commande curl pour accéder au serveur web Nginx fonctionnant sur le port 80.

curl http://localhost:80

Vous devriez voir le contenu HTML de la page d'accueil par défaut de Nginx s'afficher dans votre terminal. Cela confirme que le processus Nginx à l'intérieur du conteneur fonctionne et sert du contenu.

Cette étape renforce la compréhension que la reprise d'un conteneur permet à l'application qu'il contient de reprendre ses opérations normales.

Enfin, pour nettoyer le conteneur en cours d'exécution et le réseau créé par Docker Compose, vous pouvez utiliser la commande docker-compose down. Cette commande arrête et supprime les conteneurs, réseaux et volumes créés par up.

docker-compose down

Vous verrez une sortie indiquant que le service et le réseau sont en cours d'arrêt et de suppression.

Pour confirmer que le conteneur ne fonctionne plus, vous pouvez utiliser docker ps.

docker ps

La sortie ne devrait afficher aucun conteneur en cours d'exécution, ce qui indique que le service Nginx a été correctement arrêté et supprimé.

Résumé

Dans ce lab, nous avons appris à utiliser Docker Compose pour gérer le cycle de vie des services. Nous avons commencé par installer Docker Compose et créer un fichier docker-compose.yml pour définir un service Nginx simple.

Nous avons ensuite utilisé docker compose up pour démarrer le service défini, docker compose pause pour suspendre temporairement les processus du service, et enfin docker compose unpause pour reprendre le service mis en pause. Nous avons vérifié l'état du service après chaque étape, démontrant ainsi l'application pratique de ces commandes Docker Compose pour contrôler l'exécution des services.