Dans ce didacticiel, vous apprendrez à exécuter Nginx en tant que conteneur Docker et à l'exposer à votre réseau local.
De plus, vous apprendrez à créer un volume de données Docker pour partager des informations entre un conteneur et le système de fichiers hôte.
Nginx est un logiciel open source populaire utilisé pour le service Web, le proxy inverse, la mise en cache, l'équilibrage de charge, etc. Il est très populaire et utilisé sur de nombreux sites Web à fort trafic aujourd'hui. L'une des charges de travail les plus courantes de Docker est de l'utiliser pour conteneuriser les serveurs Web. Nous allons vous montrer comment le configurer avec Nginx. Alors, laissez-nous vous guider tout au long du processus.
Docker est une plate-forme de conteneurisation qui regroupe votre application dans une image de conteneur facilement gérable.
Prérequis
Vous devez remplir les conditions suivantes pour suivre ce didacticiel :
- Docker doit être installé et exécuté localement sur votre système.
- Vous avez besoin d'un compte root, ou un utilisateur peut exécuter des commandes sudo.
Configuration de Nginx Inside Docker
Tirer l'image
Tout d'abord, nous allons extraire l'image officielle de Nginx. Exécutez la commande d'extraction Docker suivante sur le terminal pour télécharger la dernière image Nginx à partir du hub Docker sur votre hôte Docker.
sudo docker pull nginx
Exécuter le conteneur Docker Nginx
Nous sommes prêts à exécuter le conteneur Nginx Docker et à exposer son port à votre réseau local. Pour ce faire, nous exécutons l'image avec la commande :
sudo docker run -d -p 80:80 --name my-nginx-server nginx
-d
– Démarrer un conteneur en mode détaché (le conteneur s'exécute en arrière-plan).-p
– Lier un port du conteneur à l'hôte (achemine le trafic de l'hôte du port 80 au port du conteneur 80).-name
– Le nom de notre conteneur Docker.
Le dernier argument, nginx
, indique à Docker quelle image utiliser pour le conteneur.
Ouvrez maintenant un navigateur et pointez-le vers l'adresse de l'hôte sur lequel vous avez exécuté votre conteneur Nginx. Dans mon cas, c'est http://192.168.122.101
. La page par défaut du serveur Web Nginx devrait vous accueillir.
Le voilà. Vous avez une instance de travail du conteneur Nginx Docker.
Liste des conteneurs Docker
Pour répertorier tous les conteneurs Docker en cours d'exécution, exécutez la commande suivante :
sudo docker container ls
Sur la base de la sortie ci-dessus, nous pouvons arrêter notre conteneur Nginx Docker avec l'un des deux suivants :
sudo docker stop 19411f8b3f35
sudo docker stop my-nginx-server
Pour voir tous les conteneurs, même ceux qui ne fonctionnent pas, vous devez ajouter le -a
drapeau.
sudo docker container ls -a
Partage de données entre le conteneur Nginx Docker et l'hôte
Les conteneurs Docker sont éphémères. Par défaut, toutes les données créées à l'intérieur du conteneur ne sont disponibles qu'à partir du conteneur et uniquement pendant l'exécution du conteneur.
Alors, laissez-nous vous montrer comment rendre les données de l'intérieur du conteneur accessibles sur la machine hôte. Notre objectif est de créer un fichier HTML simple, de l'héberger dans un conteneur et de le diffuser à l'extérieur à l'aide du conteneur Nginx Docker.
Cette configuration nous permet d'avoir un contenu de site Web persistant hébergé en dehors du conteneur.
Pour obtenir cette fonctionnalité, nous utiliserons la fonctionnalité de montage de liaison dans Docker. Lorsque vous utilisez un montage lié, un fichier ou un répertoire sur la machine hôte est monté dans un conteneur.
Alors, commençons par créer un nouveau répertoire pour le contenu de votre site Web dans le répertoire d'accueil.
mkdir ~/www
Créons maintenant un simple fichier HTML et insérons du texte sur votre page d'index.
vim ~/www/index.html
<html>
<head>
<title>Nginx Docker</title>
</head>
<body>
<h1>My static page.</h1>
</body>
</html>
Veuillez copier l'extrait ci-dessus et le coller à l'intérieur. Ensuite, enregistrez le fichier et quittez Vim.
Ensuite, nous allons exécuter le conteneur Nginx Docker avec le volume attaché sur le conteneur /usr/share/nginx/html
au présent sur l'hébergeur www
répertoire où se trouve le index.html
le fichier est enregistré.
docker run -d -p 80:80 -v ~/www:/usr/share/nginx/html/ --name my-nginx-server nginx
Le conteneur Nginx est configuré par défaut pour rechercher une page d'index sur /usr/share/nginx/html/
. Dans la commande ci-dessus, le -v
L'option configure un volume de montage lié qui relie le /
répertoire de l'intérieur du conteneur Nginx Docker vers le usr/share/nginx/html/
~/www
répertoire sur la machine hôte.
Docker utilise le symbole deux-points (:
) pour séparer le chemin de l'hôte du chemin du conteneur. N'oubliez pas que le chemin de l'hôte vient toujours en premier.
Encore une fois, si vous parcourez http://192.168.122.101
, vous obtiendrez la sortie ci-dessous dans la fenêtre du navigateur.
C'est tout. Vous avez maintenant un conteneur Nginx Docker en cours d'exécution servant une page Web personnalisée.
Conclusion
Nginx et Docker fonctionnent très bien ensemble. Ce didacticiel a montré comment configurer et utiliser le conteneur Nginx Docker. Vous savez également comment partager des informations entre un conteneur et le système de fichiers hôte.
En cas de questions, veuillez laisser vos commentaires.