đź•’ : 3 h maximum

Prérequis:

TP0_Docker et cours Docker

But:

installer un serveur apache dans un conteneur que l’on pourra reproduire sans difficultĂ©.

Répertoire de travail:

/~/works/TP1_Docker

Présentation du TP

  • Le conteneur Docker va nous permettre de faire fonctionner un serveur WEB Apache,
  • on va partager ici le rĂ©pertoire du docker /var/http/www avec un rĂ©pertoire de la machine hĂ´te qui nous permettra d’utiliser facilement notre Docker.
  • on va rediriger le port 80 du docker vers le port 8080 ici pour notre TP , on obtiendra une site accessible en local ! (firefox, chrome, chromium…)

Dans le répertoire TP1_Docker réaliser un répertoire site_apache dans lequel on va mettre un fichier index.html

fichier index.html:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Mon serveur Debian</title>
</head>
<body>
    <h1>âś… Apache fonctionne sur Debian 12 !</h1>
    <p>Ce fichier vient du dossier partagé "site_apache"</p>
</body>
</html>

On va fabriquer et lancer notre Docker

on a besoin d’un d’un fichier Dockerfile pour la rĂ©aliser ce Docker , dans le rĂ©pertoire TP1_DOCKER_APACHE

on va simplement partir d’une base de docker debian:12 et y installer ce qu’il faut Ă  l’intĂ©rieur .

# ÉTAPE 1 : On part d'une Debian 12 toute propre
FROM debian:12

# ÉTAPE 2 : On met à jour les paquets et on installe Apache
# apt-get update = met Ă  jour la liste des paquets disponibles
# -y = dit "oui" automatiquement aux questions
RUN apt-get update && \
    apt-get install -y apache2 && \
    # Nettoie pour réduire la taille de l'image
    apt-get clean

# ÉTAPE 3 : On configure Apache pour qu'il reste actif
# En Docker, un programme doit rester au premier plan
# Apache2ctl est la commande de contrĂ´le d'Apache
CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"]

# On indique que le conteneur utilise le port 80
EXPOSE 80

Construire avec la commande build

# Construit l'image Ă  partir du Dockerfile
# -t = tag (nom) qu'on donne Ă  l'image
docker build -t debian12-apache .

Lancer notre docker

# Lance un conteneur Ă  partir de notre image
docker run -d \
  --name serveur-web \
  -p 8080:80 \
  -v $(pwd)/site_apache:/var/www/html \
  debian12-apache
-d          : pour detach
--name      : pour lui donner un nom Ă  nous (pas par docker qui pourtant nous propose des noms sympas!)
-p 8080:80  : dirige le port 8080 vers le port 80 du Docker
-v          : pour partager le répertoire

Se connecter au docker

docker exec -it serveur-web bash

Réaliser une sauvegarde du docker et le remettre en oeuvre sur une autre machine.