GNU/Linux >> Tutoriels Linux >  >> Panels >> Docker

Comment exécuter Nginx dans un conteneur Docker :un guide étape par étape

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 :

  1. Docker doit être installé et exécuté localement sur votre système.
  2. 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 /usr/share/nginx/html/ répertoire de l'intérieur du conteneur Nginx Docker vers le ~/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.


Docker
  1. Comment exécuter MySQL dans Docker Container :un guide simple et facile à suivre

  2. Installer NGINX sur openSUSE - Guide étape par étape ?

  3. Une introduction à Docker

  4. Comment exécuter une commande sur un conteneur Docker en cours d'exécution

  5. Impossible d'exécuter NGINX Docker en raison de "13 :Autorisation refusée"

Comment exécuter PHPMyAdmin dans un conteneur Docker

Comment exécuter Grafana dans un conteneur Docker

Comment exécuter des conteneurs Docker

Commandes Docker pour la gestion du cycle de vie des conteneurs (Guide définitif)

Guide du débutant sur la politique de redémarrage de Docker

Exécuter Docker Container en arrière-plan (mode détaché)