Comment exécuter NGINX avec la commande docker run
Jul 20, 2026
/
Faradilla A.
/
5 minutes de lecture
Exécuter NGINX dans Docker simplifie le déploiement d’un serveur web, sans avoir à effectuer une installation complexe au niveau du système d’exploitation. Pour démarrer un conteneur NGINX avec Docker, exécutez la commande suivante :
docker run --name my-nginx -p 80:80 -d nginx
Cette commande lance une série d’opérations : Docker vérifie si l’image officielle est disponible (et la télécharge si nécessaire), crée un conteneur isolé, associe le port requis, puis démarre le serveur en arrière-plan.
Quels sont les prérequis pour exécuter NGINX dans Docker ?
- Accès au serveur privé virtuel (VPS). Vous avez besoin d’un VPS exécutant une distribution Linux moderne (comme Ubuntu ou Debian) avec des privilèges root ou sudo.
- Docker Engine 20.10 ou version ultérieure. Docker doit être installé sur la machine hôte et le service doit être en cours d’exécution. Exécutez docker –version pour le vérifier.

- Autorisations utilisateur. L’utilisateur qui effectue cette opération doit appartenir au groupe docker afin de pouvoir exécuter des commandes sans sudo.
- Docker Compose. Cet outil est facultatif pour un conteneur unique, mais Docker Compose est recommandé pour définir par la suite des environnements composés de plusieurs conteneurs.
1. Téléchargez l’image Docker officielle de NGINX
Exécutez la commande suivante pour télécharger l’image nginx depuis Docker Hub :
docker pull nginx

Cette commande télécharge la dernière version stable de l’image NGINX sur votre machine hôte.
En utilisant l’image officielle, vous bénéficiez d’une version sécurisée et maintenue du logiciel, fournie directement par l’équipe NGINX, sans composants superflus ni dépendances obsolètes.
Vérifiez que l’image a bien été téléchargée :
docker images nginx

2. Exécutez NGINX en mode détaché
Pour continuer à utiliser votre terminal pour d’autres tâches, exécutez le conteneur en arrière-plan en mode détaché. Utilisez l’option -d pour démarrer le conteneur et rendre immédiatement la main à la console.
docker run --name my-nginx -p 80:80 -d nginx

- –name my-nginx. Attribue le nom personnalisé my-nginx au conteneur pour en faciliter la gestion.
- -d. Exécute le conteneur en arrière-plan en détachant le processus du terminal.
- nginx. Spécifie l’image à utiliser.
Vérifiez que le conteneur est en cours d’exécution en affichant la liste des conteneurs actifs :
docker ps

Si un message d’erreur indique que le nom du conteneur est déjà utilisé, supprimez le conteneur existant avec docker rm my-nginx, ou relancez la commande docker run en utilisant un autre nom de conteneur, par exemple :
docker run --name my-nginx-new -p 80:80 -d nginx
3. Exposez les ports lors de l’exécution de NGINX
Utilisez l’option -p pour associer un port de la machine hôte à un port du conteneur.
Par défaut, NGINX écoute sur le port 80. Pour rendre le serveur web accessible depuis l’extérieur du conteneur, vous devez associer son port interne à un port ouvert sur la machine hôte.
Pour associer le port 8080 de votre machine hôte au port 80 du conteneur, exécutez la commande suivante :
docker run --name my-nginx -p 8080:80 -d nginx
Si le port 8080 est déjà utilisé, choisissez un autre port disponible, par exemple 8081 :
docker run -d -p 8081:80 --name my-nginx nginx
Si vous obtenez une erreur indiquant que « l’adresse est déjà utilisée », cela signifie qu’il existe un conflit de ports. Avant d’exécuter la commande, utilisez lsof pour vérifier quels ports sont actuellement à l’écoute sur votre système :
lsof -i -P -n | grep LISTEN

4. Configurez NGINX avec un fichier de configuration personnalisé
Pour personnaliser le comportement de NGINX, montez votre propre fichier de configuration à l’aide de l’option -v (volume). Cette approche est utile pour les configurations avancées, par exemple lorsque NGINX est utilisé comme proxy inverse.
Commencez par créer un fichier de configuration personnalisé nommé nginx.conf sur votre machine hôte à l’aide de l’éditeur de texte nano :
nano nginx.conf
Collez le contenu suivant :
events {}
http {
server {
listen 80;
location / {
proxy_pass http://host.docker.internal:3000;
}
}
}
Cette configuration redirige le trafic vers un service backend exécuté sur le port 3000.
Enregistrez le fichier et quittez l’éditeur avec Ctrl + X → Y → Entrée.
Exécutez ensuite le conteneur en montant ce fichier afin de remplacer la configuration par défaut à l’intérieur du conteneur. Sous Linux, le nom d’hôte spécial host.docker.internal nécessite une option supplémentaire pour être correctement résolu :
docker run -d \ --name custom-nginx \ -p 80:80 \ --add-host=host.docker.internal:host-gateway \ -v $(pwd)/nginx.conf:/etc/nginx/nginx.conf:ro \ nginx

L’option –add-host associe host.docker.internal à l’adresse IP de la machine hôte. L’option :ro monte le fichier en lecture seule dans le conteneur, ce qui évite toute modification accidentelle depuis l’instance en cours d’exécution.
5. Servez du contenu statique avec NGINX
Pour servir les fichiers de votre site web, montez un répertoire local contenant vos fichiers HTML, CSS et JavaScript dans la racine web par défaut de NGINX.
Créez un répertoire nommé html :
mkdir html
Ajoutez un fichier index.html dans ce répertoire avec nano html/index.html, puis insérez le contenu de base suivant :
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My Docker NGINX Site</title>
</head>
<body>
<h1>Hello from NGINX in Docker!</h1>
<p>This page is being served from a mounted volume.</p>
</body>
</html>
Une fois le fichier enregistré, exécutez la commande suivante :
docker run -d \ --name static-nginx \ -p 80:80 \ -v $(pwd)/html:/usr/share/nginx/html:ro \ nginx
Ouvrez votre navigateur et accédez à http://votre-serveur-ip pour afficher la page.

Les utilisateurs d’un VPS Hostinger peuvent trouver l’adresse IP de leur serveur dans hPanel en accédant à VPS → Gérer → Aperçu général → Informations du VPS → IPv4.

Notez que la configuration par défaut de NGINX recherche automatiquement un fichier index.html dans le répertoire /usr/share/nginx/html.
Si votre application nécessite une structure de répertoires différente ou des règles de routage spécifiques, combinez cette étape avec la méthode de configuration personnalisée décrite dans la section précédente.

6. Gérez les conteneurs NGINX
Une fois le conteneur en cours d’exécution, utilisez les commandes Docker standard pour gérer son cycle de vie.
Arrêtez le conteneur avec la commande docker stop, suivie du nom du conteneur :
docker stop my-nginx

Redémarrez le conteneur s’il est actuellement arrêté :
docker start my-nginx
Affichez les journaux afin de résoudre d’éventuelles erreurs ou de vérifier les requêtes d’accès :
docker logs my-nginx

Supprimez complètement le conteneur (assurez-vous qu’il est arrêté au préalable) :
docker rm my-nginx
7. Utilisez Docker Compose avec NGINX
Si votre environnement comprend plusieurs services, par exemple un serveur web qui communique avec une base de données, envisagez d’utiliser Docker Compose. Il simplifie l’orchestration en définissant l’environnement dans un fichier YAML.
Créez un fichier nommé docker-compose.yml, puis collez le contenu suivant :
services:
web:
image: nginx
ports:
- "80:80"
extra_hosts:
- "host.docker.internal:host-gateway"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf:ro
- ./html:/usr/share/nginx/html:ro
Cette configuration définit un service nommé web qui utilise l’image NGINX, expose le port 80 et monte un fichier de configuration personnalisé ainsi qu’un répertoire contenant le contenu statique.
La directive extra_hosts active le nom d’hôte host.docker.internal sur les systèmes Linux.
Démarrez l’environnement avec une seule commande :
docker compose up -d

Docker Compose rend votre configuration reproductible et vous permet de gérer l’ensemble de votre pile applicative avec des commandes telles que docker compose stop et docker compose down.
Quelle est la prochaine étape après avoir exécuté NGINX dans Docker ?
Apprendre à exécuter NGINX dans un conteneur Docker vous donne les bases nécessaires pour déployer un serveur web portable. Vous n’avez pas à vous soucier des installations au niveau du système d’exploitation ni des conflits de versions, car les conteneurs isolent tous les composants et garantissent un environnement cohérent.
Toutefois, saisir de longues commandes pour chaque conteneur devient rapidement peu pratique dans les projets de grande envergure. Pour gérer un trafic réel et maintenir votre application disponible lors des mises à jour, vous devrez aller au-delà des conteneurs individuels en adoptant des solutions d’orchestration.
Une fois ces bases maîtrisées, vous pourrez explorer des solutions d’orchestration comme Docker Swarm pour gérer des applications réparties sur plusieurs machines et répondre aux besoins d’environnements plus complexes.
Tout le contenu des tutoriels de ce site est soumis aux normes éditoriales et aux valeurs rigoureuses de Hostinger.
Commentaires
0 responses