Déploiement et gestion d'un environnement LNMP sous Docker

Commandes Essentielles pour la Gestion des Conteneurs

La maîtrise de Docker repose sur une série de commandes fondamentales pour orchestrer le cycle de vie des images et des conteneurs.

# Récupérer une image depuis le registre officiel
docker pull debian:latest

# Lister les images disponibles localement
docker images

# Rechercher une image spécifique sur le Docker Hub
docker search nginx

# Supprimer une image par son identifiant
docker rmi -f [IMAGE_ID]

# Lancer un conteneur en mode détaché avec mappage de port
docker run -d --name serveur-web-prod -p 80:80 nginx:stable

# Arrêter ou démarrer un conteneur existant
docker stop [CONTAINER_ID]
docker start [CONTAINER_ID]

# Supprimer un conteneur inactif
docker rm [CONTAINER_ID]

Analyse et Surviellance des Logs

Pour le débogage, l'outil de logs intégré est indispensable pour visualiser les flux de sortie des applications conteneurisées.

# Suivre les logs en temps réel avec horodatage
docker logs -f -t [CONTAINER_NAME]

# Extraire les 50 dernières lignes de logs
docker logs --tail 50 [CONTAINER_ID]

# Filtrer les logs sur une période spécifique
docker logs --since "2023-10-01T10:00:00" --until "2023-10-01T15:00:00" [CONTAINER_ID]

Configuration de l'Environnement LNMP

Lors de la mise en place d'une pile LNMP (Linux, Nginx, MySQL, PHP), la communicatino entre les services est primordiale. Nginx doit pointer vers le moteur de rendu PHP (PHP-FPM).

Pour identifier l'adresse IP interne d'un conteneur PHP afin de configurer le fichier de configuration Nginx :

docker inspect -f '{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}' conteneur-php

Dans votre fichier de configuration Nginx (default.conf), ajustez la directive fastcgi_pass :

location ~ \.php$ {
   root           /var/www/html;
   fastcgi_pass   172.17.0.3:9000; # Remplacez par l'IP réelle ou le nom du lien
   fastcgi_index  index.php;
   fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
   include        fastcgi_params;
}

Interactions Directes et Maintenance

Pour effectuer des opérations de maintenance à l'intérieur d'un conteneur en cours d'exécution, utilisez la commande exec :

# Accéder au terminal interactif du conteneur
docker exec -it [CONTAINER_ID] /bin/bash

Si vous devez installer des outils comme l'éditeur Vim dans un conteneur basé sur Debian/Ubuntu :

apt update && apt install -y vim

Persistance et Réseaux

Le déploiement d'un service PHP lié à MySQL nécessite souvent le montage de volumes pour la persistance des données et la synchronisation du code source.

docker run -d \
 --name app-php \
 -v /chemin/local/www:/var/www/html \
 -v /chemin/local/config/php.ini:/usr/local/etc/php/php.ini \
 php:fpm-alpine

Pour recharger la configuration de Nginx sans interrompre le service :

docker exec serveur-nginx nginx -s reload

Étiquettes: Docker LNMP nginx php-fpm conteneurisation

Publié le 28 juillet à 14h19