
Exemple 1 : Lancer un serveur web Nginx en une commande
Apprenez à déployer un serveur web Nginx fonctionnel en une seule commande Docker. Guide pratique incluant le mappage de port et la gestion du conteneur.
Déployer Nginx instantanément avec Docker
L'un des exemples les plus classiques et démonstratifs de la puissance de Docker est le lancement d'un serveur web Nginx prêt à l'emploi en une seule ligne de commande. Nginx est un serveur web et un reverse proxy extrêmement populaire, et Docker permet de le déployer sans aucune installation ni configuration manuelle complexe sur votre système hôte.
Cet exercice vous montrera comment télécharger l'image officielle de Nginx depuis Docker Hub (si elle n'est pas déjà présente localement), créer un conteneur basé sur cette image, démarrer le service Nginx à l'intérieur, et le rendre accessible depuis votre machine via votre navigateur web.
L'objectif est de vous familiariser avec la commande `docker run` et quelques-unes de ses options les plus courantes, notamment pour l'exécution en arrière-plan et le mappage des ports réseau.
La commande magique et sa décomposition
Ouvrez votre terminal et tapez la commande suivante :
docker run --name my-nginx -d -p 8080:80 nginxDécortiquons cette commande :
- `docker run` : C'est la commande principale pour créer et démarrer un nouveau conteneur.
- `--name my-nginx` : Cette option attribue un nom facile à retenir (`my-nginx`) à notre conteneur. Si vous ne spécifiez pas de nom, Docker en générera un aléatoirement (par exemple, `jovial_murdock`). Avoir un nom rend la gestion du conteneur (arrêt, suppression) plus aisée.
- `-d` : Cette option signifie "detached" (détaché). Elle demande à Docker de lancer le conteneur en arrière-plan et d'afficher l'ID du conteneur une fois démarré. Sans cette option, votre terminal resterait attaché au processus Nginx du conteneur, affichant ses logs en direct, et vous devriez utiliser `Ctrl+C` pour l'arrêter (ce qui arrêterait aussi le conteneur).
- `-p 8080:80` : C'est l'option de mappage de ports (publish). Elle crée une règle de redirection du trafic réseau entre votre machine hôte et le conteneur. Le format est `[PORT_HOTE]:[PORT_CONTENEUR]`. Ici, nous disons à Docker : "Tout le trafic arrivant sur le port 8080 de ma machine hôte doit être redirigé vers le port 80 à l'intérieur du conteneur `my-nginx`". Le port 80 est le port par défaut sur lequel Nginx écoute à l'intérieur du conteneur. Vous pouvez choisir un autre port hôte si 8080 est déjà utilisé (par exemple, `-p 81:80`).
- `nginx` : C'est le nom de l'image Docker que nous voulons utiliser. Docker va d'abord chercher cette image localement. Si elle n'est pas trouvée, il la téléchargera automatiquement depuis le registre par défaut, Docker Hub. Il utilisera la version taguée `latest` par défaut.
Vérification et gestion du conteneur
Après avoir exécuté la commande, Docker affichera un long ID de conteneur. Cela signifie que le conteneur est démarré en arrière-plan. Pour vérifier qu'il fonctionne, ouvrez votre navigateur web et accédez à l'adresse : http://localhost:8080 (ou `http://
Vous devriez voir la page d'accueil par défaut de Nginx ("Welcome to nginx!"). Félicitations, vous avez déployé un serveur web fonctionnel en quelques secondes !
Pour voir votre conteneur en cours d'exécution, utilisez la commande :
docker psVous devriez voir une ligne correspondant à votre conteneur `my-nginx`, indiquant qu'il est "Up" (en cours d'exécution) et montrant le mappage de port `0.0.0.0:8080->80/tcp`.
Lorsque vous avez terminé vos tests, vous pouvez arrêter le conteneur avec la commande :
docker stop my-nginxEt ensuite, si vous souhaitez le supprimer complètement (cela supprimera sa couche inscriptible, mais pas l'image Nginx elle-même), utilisez :
docker rm my-nginxCet exemple simple illustre parfaitement comment Docker simplifie le déploiement de services complexes. Vous n'avez eu besoin d'installer Nginx ni aucune de ses dépendances directement sur votre système.