Docker - Construction d'un Serveur Web

Bonjour, futurs développeurs ! Aujourd'hui, nous allons entreprendre un voyage passionnant à travers le monde de Docker et des serveurs web. En tant que votre enseignant de informatique bienveillant, je suis là pour vous guider à travers cette aventure pas à pas. Ne vous inquiétez pas si vous êtes nouveau dans la programmation - nous allons commencer par les bases et progresser pas à pas. Alors, prenez une tasse de café (ou votre boisson favorite) et plongeon dans !

Docker - Web Server

Comprendre Docker et les Serveurs Web

Qu'est-ce que Docker ?

Imaginez que vous déménagez dans une nouvelle maison. Au lieu de tout emballer dans des boîtes au hasard, vous organisez soigneusement vos affaires dans des conteneurs étiquetés. C'est essentiellement ce que Docker fait pour les logiciels ! Il empaquette les applications et leurs dépendances dans des unités standardisées appelées conteneurs. Cela rend facile de déplacer, déployer et exécuter des applications de manière cohérente dans différents environnements.

Qu'est-ce qu'un Serveur Web ?

Un serveur web est comme un serveur numérique dans un restaurant. Lorsque vous tapez une adresse de site web dans votre navigateur, le serveur web prend votre demande, récupère les pages web appropriées et les vous sert. Il est la colonne vertébrale d'Internet, assurant que vous pouvez accéder aux sites web whenever vous le souhaitez.

Créer un Serveur Web Simple avec Docker

Étape 1 : Configuration de l'Environnement

Tout d'abord, assurons-nous que nous avons Docker installé sur notre ordinateur. Si vous ne l'avez pas encore fait, rendez-vous sur le site officiel de Docker et suivez le guide d'installation pour votre système d'exploitation.

Étape 2 : Création d'un Fichier HTML Simple

Commençons par créer un fichier HTML simple que notre serveur web affichera. Créez un nouveau fichier appelé index.html avec le contenu suivant :

<!DOCTYPE html>
<html lang="fr">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Mon Serveur Web Docker</title>
</head>
<body>
<h1>Bonjour, Monde Docker !</h1>
<p>Cette est une page web simple servie par Docker.</p>
</body>
</html>

Ce fichier HTML crée une page web de base avec un titre et un paragraphe. C'est comme écrire une lettre simple que notre serveur web distribuera aux visiteurs.

Étape 3 : Création du Dockerfile

Maintenant, créons notre Dockerfile. C'est comme une recette qui indique à Docker comment construire notre conteneur de serveur web. Créez un nouveau fichier appelé Dockerfile (sans extension) avec le contenu suivant :

FROM nginx:alpine
COPY index.html /usr/share/nginx/html/index.html

Décomposons cela :

  • FROM nginx:alpine : Cela indique à Docker d'utiliser l'image officielle Nginx basée sur Alpine Linux comme point de départ.
  • COPY index.html /usr/share/nginx/html/index.html : Cela copie notre fichier HTML dans le répertoire par défaut où Nginx cherche les pages web.

Étape 4 : Construction de l'Image Docker

Maintenant que nous avons notre Dockerfile, construisons notre image Docker. Ouvrez votre terminal, naviguez dans le répertoire contenant votre Dockerfile et index.html, et exécutez :

docker build -t mon-serveur-web .

Cette commande indique à Docker de construire une image basée sur notre Dockerfile et de la taguer comme "mon-serveur-web". Le point à la fin indique à Docker de chercher le Dockerfile dans le répertoire courant.

Étape 5 : Exécution du Conteneur Docker

Nous y sommes presque ! Exécutons notre conteneur Docker :

docker run -d -p 8080:80 mon-serveur-web

Cette commande fait ce qui suit :

  • -d : Exécute le conteneur en mode détaché (en arrière-plan)
  • -p 8080:80 : Mappe le port 8080 sur votre ordinateur au port 80 dans le conteneur
  • mon-serveur-web : Le nom de notre image Docker

Test du Serveur Web

Place maintenant à la vérité ! Ouvrez votre navigateur web et allez à http://localhost:8080. Vous devriez voir notre message "Bonjour, Monde Docker !". Félicitations ! Vous venez de créer et de déployer un serveur web avec Docker !

Sujets Avancés

Personnalisation de la Configuration Nginx

Que faire si nous voulons personnaliser le comportement de notre serveur web ? Nous pouvons le faire en modifiant la configuration Nginx. Créons un fichier de configuration Nginx personnalisé appelé nginx.conf :

server {
listen 80;
server_name localhost;

location / {
root /usr/share/nginx/html;
index index.html;
}

location /api {
return 200 '{"message": "Cette est une réponse API exemple"}';
add_header Content-Type application/json;
}
}

Cette configuration fait deux choses :

  1. Elle sert notre fichier HTML comme avant.
  2. Elle crée un point de terminaison API simple à /api qui renvoie une réponse JSON.

Maintenant, mettons à jour notre Dockerfile pour utiliser cette configuration :

FROM nginx:alpine
COPY index.html /usr/share/nginx/html/index.html
COPY nginx.conf /etc/nginx/conf.d/default.conf

Reconstruisez votre image Docker et exécutez-la à nouveau. Maintenant, si vous allez à http://localhost:8080/api, vous verrez la réponse JSON !

Conclusion

Et voilà, amis ! Nous avons voyagé des bases de Docker et des serveurs web à la création de notre propre conteneur de serveur web personnalisé. Souvenez-vous, c'est apenas le début. Le monde de Docker et du développement web est vaste et passionnant, avec des possibilités infinies à explorer.

Voici un résumé rapide des méthodes que nous avons apprises, présenté sous forme de tableau :

Méthode Description
docker build Construit une image Docker à partir d'un Dockerfile
docker run Crée et démarre un conteneur Docker
docker ps List les conteneurs Docker en cours d'exécution
docker stop Arrête un conteneur Docker en cours d'exécution
docker rm Supprime un conteneur Docker

Continuez à pratiquer, continuez à explorer, et surtout, continuez à vous amuser avec le codage ! Qui sait ? La prochaine grande application web pourrait être à quelques conteneurs Docker de distance. Jusqu'à la prochaine fois, bon codage !

Credits: Image by storyset