sio2:decouverte_de_docker

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

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] dthevenotsio2:decouverte_de_docker [2025/02/13 16:33] (Version actuelle) – [Conteneuriser la base de données] dthevenot
Ligne 1: Ligne 1:
 https://cyberinstitut.fr/utiliser-docker-sous-windows-guide-debutants/ https://cyberinstitut.fr/utiliser-docker-sous-windows-guide-debutants/
- 
 ====== 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]], ce qui facilite la portabilité et l’efficacité.  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]], ce qui facilite la portabilité et l’efficacité. 
  
Ligne 12: Ligne 10:
 Après l’installation, redémarrez votre ordinateur pour finaliser l’installation. Après l’installation, redémarrez votre ordinateur pour finaliser 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="info">Dans Docker Desktop, Paramètres, Ressources, Proxies : paramétrer si besoin le proxy</alert>
  
 ===== Configuration initiale de Docker ===== ===== Configuration initiale de Docker =====
Ligne 19: Ligne 19:
 ===== Utilisation basique de Docker ===== ===== Utilisation basique de Docker =====
  
-Une fois Docker installé et configuré, vous pouvez commencer à l’utiliser pour lancer vos premiers conteneurs. Voici les commandes de base :+Une fois Docker installéconfiguré et lancé, vous pouvez commencer à l’utiliser pour lancer vos premiers conteneurs. Voici les commandes de base :
   * 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'affichage d'un message pendant 1 minute. Nous allons crée un conteneur pour une application php simple : l'affichage d'un message pendant 1 minute.
-  Dans le dossier **Documents**, créer un dossier **ProjetDocker** et un sous-dossier **Projet1** +<bootnote warning>Faire un compte-rendu de TP qui commence par rappeler le rôle et les avantages de Docker</bootnote>  
-  - Dans ce sous-dossier créer le fichier index.php qui affiche d'un message pendant 1 minute (remarque : vous n'êtes pas sur votre serveur php donc le fichier ne peut pas s'éxécuter !)+  - Créer un dossier **ProjetDocker** et un sous-dossier **Projet1** 
 +  - Dans ce sous-dossier créer le fichier **index.php** qui affiche d'un message pendant 1 minute (remarque : vous n'êtes pas sur votre serveur php donc le fichier ne peut pas s'éxécuter !)
   - créer le **Dockerfile** qui contient le code suivant (à nommer exactement comme ça, sans extension) :<code>   - créer le **Dockerfile** qui contient le code suivant (à nommer exactement comme ça, sans extension) :<code>
 # Utiliser l'image officielle PHP comme base # Utiliser l'image officielle PHP comme base
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'application ====
 +  - Créer le **Dockerfile** : <code>
 +# Utiliser l'image officielle PHP avec Apache
 +FROM php:8.1-apache
  
 +# 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'application dans le dossier web de Apache
 +COPY . /var/www/html
 +
 +# Donner les bons droits
 +RUN chown -R www-data:www-data /var/www/html
 +
 +# Exposer le port 80 pour Apache
 +EXPOSE 80
 +
 +# Lancer Apache au démarrage
 +CMD ["apache2-foreground"]
 +</code>
 +  - pour gérer mysql, ajouter un fichier **docker-compose.yml** :<code>
 +version: "3.8"
 +services:
 +  web:
 +    build: .
 +    container_name: mon-site-php
 +    ports:
 +      - "8080:80"
 +    volumes:
 +      - .:/var/www/html
 +    depends_on:
 +      - db
 +
 +  db:
 +    image: mysql:8.0
 +    container_name: mysql-db
 +    restart: always
 +    environment:
 +      MYSQL_ROOT_PASSWORD: root
 +      MYSQL_DATABASE: my_database
 +      MYSQL_USER: user
 +      MYSQL_PASSWORD: password
 +    volumes:
 +      - mysql_data:/var/lib/mysql
 +
 +volumes:
 +  mysql_data:
 +</code>
 +  - Construire et démarrer les conteneurs :''docker-compose up --build -d''
 +  - L'application sera disponible sur **http://localhost:8080**
 +  - si vous lancer votre serveur de bd l'application doit fonctionner normalement
  
 +==== 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 : ''docker cp database.sql mysql-db:/database.sql''
 +     - le script doit contenir : création de la bd, des tables, insertion des données, les contraintes, la création de l'utilisatuer et ses droits
 +  - Modifier le docker-compose pour mettre à jour les variables d'environnement MYSQL
 +  - Accèder au conteneur MySQL : ''docker exec -it mysql-db mysql -u root -p'' (Entrer root comme mot de passe)
 +  - Exécuter la commande pour importer la base :''SOURCE /database.sql;''
 +  - Modifier la connexion à la bd : mettre **db** (nom du service Docker défini dans docker-compose.yml) à la place de l'adresse ip du serveur de données
 +  - Reconstruire et démarrer les conteneurs : ''docker-compose up –build -d''
 +  - Vérifier les conteneurs actifs : ''docker ps'' 
 +    - on devrait voir le site web et mysql en cours d'exécution
 +  - dans le navigateur : http://localhost:8080
 +    - l'application PHP doit fonctionner avec Apache et MySQL dans Docker 
 +<bootnote> __A retenir__ : décrire ligne à ligne le **Dockerfile** et le** docker-compose**, préciser le rôle de ce dernier fichier</bootnote>
  • sio2/decouverte_de_docker.1739171973.txt.gz
  • Dernière modification : 2025/02/10 08:19
  • de dthevenot