0. Avant Propos :
Nginx (« engine x ») est un serveur web, plus efficace et moderne que apache2. Nginx peut être utilisé en tant que serveur web complet (php, bases de données, etc), mais je l’utilise uniquement pour la distribution de fichiers vidéo statiques pour le site. Ce n’est donc pas un tutoriel complet, mais le minimum pour disposer de fichiers sur le net.
1. Prérequis :
Docker est installé et fonctionnel. Voir ici si ce n’est pas le cas.
2. Télécharger l’image officielle de Nginx :
docker pull nginx
3. Créer un répertoire pour les fichiers de configuration et le contenu web :
mkdir -p ~/nginx/html
Tu peux placer ton fichier index.html ou d’autres fichiers dans le répertoire ~/nginx/html.
Exemple de contenu de index.html :
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Bienvenue sur Nginx !</title> </head> <body> <h1>Bienvenue sur votre serveur Nginx en Docker !</h1> </body> </html>
4. Lancer un conteneur Nginx :
Maintenant, tu peux lancer un conteneur Nginx en mappant le répertoire local que tu viens de créer vers le répertoire /usr/share/nginx/html du conteneur, qui est l’endroit où Nginx recherche le contenu web par défaut.
Voici la commande pour créer et démarrer le conteneur Nginx :
docker run -d \ --name nginx-container \ -p 80:80 \ -v ~/nginx/html:/usr/share/nginx/html:ro \ --restart unless-stopped \ nginx
Explication des options :
-d : Démarre le conteneur en mode détaché (en arrière-plan).
–name nginx-container : Donne un nom au conteneur (ici nginx-container).
-p 80:80 : Mappe le port 80 de l’hôte (machine locale) au port 80 du conteneur (port HTTP par défaut de Nginx).
-v ~/nginx/html:/usr/share/nginx/html:ro : Monte le répertoire ~/nginx/html (sur ton hôte) dans le répertoire /usr/share/nginx/html (dans le conteneur). L’option ro signifie « read-only » (lecture seule) pour que Nginx ne modifie pas directement les fichiers de l’hôte.
–restart unless-stopped : Cela permet au conteneur de redémarrer automatiquement après un redémarrage du système, sauf si tu arrêtes manuellement le conteneur.
nginx : Utilise l’image officielle de Nginx.
5. Accéder au serveur Nginx :
http://localhost
Ou, si tu veux y accéder depuis un autre appareil, utilise l’adresse IP de ton serveur Debian.
Si tout a été correctement configuré, tu devrais voir la page « Bienvenue sur votre serveur Nginx en Docker ! » que tu as définie dans le fichier index.html.
6. Vérifier l’état du conteneur :
docker ps
7. Vérifier les logs de Nginx :
docker logs nginx-container
8. Personnalisation du fichier de configuration de Nginx :
docker run -d \ --name nginx-container \ -p 80:80 \ -v ~/nginx/html:/usr/share/nginx/html:ro \ -v ~/nginx/nginx.conf:/etc/nginx/nginx.conf:ro \ --restart unless-stopped \ nginx
Ici, ~/nginx/nginx.conf fait référence à ton fichier de configuration personnalisé sur ton hôte, qui sera monté dans le conteneur à l’emplacement où Nginx attend normalement son fichier de configuration (/etc/nginx/nginx.conf).