Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
sio2:decouverte_de_docker [2025/02/10 08:19] – dthevenot | sio2:decouverte_de_docker [2025/02/13 16:33] (Version actuelle) – [Conteneuriser la base de données] dthevenot | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
https:// | https:// | ||
- | |||
====== Docker - Présentation ====== | ====== Docker - Présentation ====== | ||
- | |||
Docker est devenu un outil incontournable pour les développeurs et les administrateurs système travaillant dans des environnements de développement variés. Sous Windows, Docker permet de simplifier la gestion des applications en les [[conteneurisant]], | Docker est devenu un outil incontournable pour les développeurs et les administrateurs système travaillant dans des environnements de développement variés. Sous Windows, Docker permet de simplifier la gestion des applications en les [[conteneurisant]], | ||
Ligne 12: | Ligne 10: | ||
Après l’installation, | Après l’installation, | ||
Une fois Docker installé, vous pouvez vérifier son bon fonctionnement en lançant l’application Docker Desktop, qui devrait afficher l’état “running” si tout est correctement configuré. | Une fois Docker installé, vous pouvez vérifier son bon fonctionnement en lançant l’application Docker Desktop, qui devrait afficher l’état “running” si tout est correctement configuré. | ||
+ | |||
+ | <alert type=" | ||
===== Configuration initiale de Docker ===== | ===== Configuration initiale de Docker ===== | ||
Ligne 19: | Ligne 19: | ||
===== Utilisation basique de Docker ===== | ===== Utilisation basique de Docker ===== | ||
- | Une fois Docker installé | + | Une fois Docker installé, configuré |
* docker run : lance un conteneur à partir d’une image. | * docker run : lance un conteneur à partir d’une image. | ||
* docker pull : télécharge une image depuis un registre Docker. | * docker pull : télécharge une image depuis un registre Docker. | ||
Ligne 29: | Ligne 29: | ||
===== Premier conteneur : affichage d'un message pendant 1 minute ===== | ===== Premier conteneur : affichage d'un message pendant 1 minute ===== | ||
Nous allons crée un conteneur pour une application php simple : l' | Nous allons crée un conteneur pour une application php simple : l' | ||
- | | + | < |
- | - Dans ce sous-dossier créer le fichier index.php qui affiche d'un message pendant 1 minute (remarque : vous n' | + | - Créer |
+ | - Dans ce sous-dossier créer le fichier | ||
- créer le **Dockerfile** qui contient le code suivant (à nommer exactement comme ça, sans extension) :< | - créer le **Dockerfile** qui contient le code suivant (à nommer exactement comme ça, sans extension) :< | ||
# Utiliser l' | # Utiliser l' | ||
Ligne 57: | Ligne 58: | ||
===== Deuxième conteneur : application php avec bd ===== | ===== Deuxième conteneur : application php avec bd ===== | ||
+ | - créer un sous-dossier **Projet2** | ||
+ | - Placer une **application PHP existante** dans ce dossier (exemple TopChrono) | ||
+ | ==== Conteneuriser l' | ||
+ | - Créer le **Dockerfile** : < | ||
+ | # Utiliser l' | ||
+ | FROM php: | ||
+ | # Activer les extensions PHP nécessaires (exemple : mysqli pour MySQL) | ||
+ | RUN docker-php-ext-install mysqli pdo pdo_mysql | ||
+ | # Copier tous les fichiers de l' | ||
+ | COPY . / | ||
+ | |||
+ | # Donner les bons droits | ||
+ | RUN chown -R www-data: | ||
+ | |||
+ | # Exposer le port 80 pour Apache | ||
+ | EXPOSE 80 | ||
+ | |||
+ | # Lancer Apache au démarrage | ||
+ | CMD [" | ||
+ | </ | ||
+ | - pour gérer mysql, ajouter un fichier **docker-compose.yml** :< | ||
+ | version: " | ||
+ | services: | ||
+ | web: | ||
+ | build: . | ||
+ | container_name: | ||
+ | ports: | ||
+ | - " | ||
+ | volumes: | ||
+ | - .:/ | ||
+ | depends_on: | ||
+ | - db | ||
+ | |||
+ | db: | ||
+ | image: mysql:8.0 | ||
+ | container_name: | ||
+ | restart: always | ||
+ | environment: | ||
+ | MYSQL_ROOT_PASSWORD: | ||
+ | MYSQL_DATABASE: | ||
+ | MYSQL_USER: user | ||
+ | MYSQL_PASSWORD: | ||
+ | volumes: | ||
+ | - mysql_data:/ | ||
+ | |||
+ | volumes: | ||
+ | mysql_data: | ||
+ | </ | ||
+ | - Construire et démarrer les conteneurs :'' | ||
+ | - L' | ||
+ | - si vous lancer votre serveur de bd l' | ||
+ | ==== Conteneuriser la base de données ==== | ||
+ | - Copier le **script de création de la base de données**(database.sql) dans le dossier précédent et dans le conteneur précédent : '' | ||
+ | - le script doit contenir : création de la bd, des tables, insertion des données, les contraintes, | ||
+ | - Modifier le docker-compose pour mettre à jour les variables d' | ||
+ | - Accèder au conteneur MySQL : '' | ||
+ | - Exécuter la commande pour importer la base :'' | ||
+ | - Modifier la connexion à la bd : mettre **db** (nom du service Docker défini dans docker-compose.yml) à la place de l' | ||
+ | - Reconstruire et démarrer les conteneurs : '' | ||
+ | - Vérifier les conteneurs actifs : '' | ||
+ | - on devrait voir le site web et mysql en cours d' | ||
+ | - dans le navigateur : http:// | ||
+ | - l' | ||
+ | < |