Docker(TP3): utilisation de conteneur

Exemple 1: serveur web Apache HTTP Server

Objectif :

lancer un conteneur Docker contenant un serveur web Apache HTTP Server, en le reliant à un dossier local contenant les fichiers du site web, et en redirigeant le port 8080 de la machine hôte vers le port 80 du conteneur pour accéder au site web depuis un navigateur web.

  1. Créez un dossier nommé « mon-site-web » sur votre machine hôte.
  2. Créez un fichier index.html dans le dossier « mon-site-web » et ajoutez-y un peu de contenu HTML.
  3. Ouvrez un terminal et exécutez la commande suivante pour lancer un conteneur httpd à partir de l’image Docker officielle, en montant le dossier « mon-site-web » en tant que dossier racine du site web :
docker run -d -p 8080:80 -v /chemin/vers/mon-site-web:/usr/local/apache2/htdocs/ httpd:latest

Cette commande permet de lancer un conteneur Docker en utilisant l’image « httpd:latest » (dernière version de l’image Apache HTTP Server) et en le reliant à un dossier local contenant les fichiers du site web. Voici ce que signifient les différents éléments de la commande :

  • « docker run » : commande pour lancer un conteneur Docker
  • « -d » : option pour lancer le conteneur en arrière-plan (en mode détaché)
  • « -p 8080:80 » : option pour rediriger le port 8080 de la machine hôte vers le port 80 du conteneur (où le serveur web est en écoute)
  • « -v /chemin/vers/mon-site-web:/usr/local/apache2/htdocs/ » : option pour monter un volume, c’est-à-dire relier un dossier local « /chemin/vers/mon-site-web » au dossier « /usr/local/apache2/htdocs/ » du conteneur, qui contient les fichiers du site web
  • « httpd:latest » : spécifie l’image Docker à utiliser (dans ce cas, la dernière version de l’image Apache HTTP Server)

Assurez-vous de remplacer « /chemin/vers/mon-site-web » par le chemin absolu vers le dossier « mon-site-web » sur votre machine hôte.

  1. Accédez au site web en ouvrant un navigateur et en accédant à l’adresse « http://localhost:8080« . Vous devriez voir le contenu du fichier index.html que vous avez créé dans le dossier « mon-site-web ».
  2. Pour arrêter le conteneur, ouvrez un terminal et exécutez la commande suivante :
docker stop <ID_DU_CONTENEUR>

Assurez-vous de remplacer « <ID_DU_CONTENEUR> » par l’identifiant du conteneur, que vous pouvez obtenir en exécutant la commande « docker ps ».

Exemple 2: serveur web Avec Flask

  1. Tout d’abord, assurez-vous que Docker est installé sur votre machine.
  2. Créez un nouveau répertoire pour votre application Flask.
  3. Dans ce répertoire, créez un fichier app.py qui contient le code suivant :
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello():
    return 'Hello, World!'

if __name__= "__main__":
    app.run(host='0.0.0.0',port=5000)
    Flask==2.1.2
    docker run -p 5000:5000 -v /chemin/vers/le/fichier/:/app/ --name flaskapp python:latest sh -c "pip install -r /app/requirements.txt && python /app/app.py"

    Cette commande exécute un conteneur à partir de l’image Python, en montant votre répertoire de projet local ($(pwd)) sur le répertoire /app dans le conteneur et en définissant /app comme le répertoire de travail dans le conteneur. Enfin, il installe les dépendances définies dans le fichier requirements.txt avant d’exécuter l’application Flask. Le conteneur est lié au port 5000 de l’hôte, ce qui permet d’y accéder via un navigateur Web. Le nom du conteneur est défini comme « flaskapp ».

      Notez que cette méthode peut être pratique pour tester rapidement une application, mais pour une utilisation en production, il est recommandé de créer un fichier Dockerfile pour gérer l’environnement et les dépendances de l’application de manière plus contrôlée.