Introduction à Docker compose
This content is not available in your language yet.
La nous allons voir plusieurs concept en même temps ! préparez le doliprane 1000mg 😼
Pour commencer simplement nous allons monter un Wordpress avec sa base de donnée qui va bien !
Wordpress :
Rendez-vous sur le docker hub de wordpress officiel !
https://hub.docker.com/_/wordpress
Un peu plus bas on vois une section Docker compose :
On vois plusieurs éléments, dont une image wordpress et une mysql. Je vais copier ce code dans VSCode est vous le commenter.
# Version de docker compose utiliséeversion: '3.7'## Définition des services, un services sera un conteneur, une application par conteneur !sservices: ## Définition du service wordpresss wordpress: ## Image utilisée pour le conteneur, ici nous récupérons la dernière version de wordpresss image: wordpress ## Redémarrage du conteneur en cas de crash, redemarrage de l'hôte, etc... restart: always ## Définition du nom du conteneur, ici wordpress, ## l'hote ne connais pas le nom mais les autres conteneurs ouis container_name: wordpress ## Exposition du port 80 du conteneur vers le port 8080 de l'hôtes ports: - 8080:80 ## Ici on déclare une liaison avec la base de données, ## pour s'assurer que le conteneur db est bien démarré avant le conteneur wordpress depends_on: ## Nom du service sur lequel on dépend, ici db - db ## Définition des variables d'environnement pour le conteneur, ici nous définissons les informations de connexion à la base de données environment: ## Nom de l'hôte de la base de données WORDPRESS_DB_HOST: db ## Nom d'utilisateur de la base de données WORDPRESS_DB_USER: user-wordpress ## Mot de passe de l'utilisateur de la base de donnéess WORDPRESS_DB_PASSWORD: password-wordpress ## Nom de la base de données WORDPRESS_DB_NAME: wordpressdb ## Définition des volumes pour avoir des données persistante après le redémarrage volumes: ## En premier on indique le dossier de l'hôte qui sera monté dans le conteneur ## En second on indique le dossier du conteneur dans lequel on va monter le dossier de l'hôtes ## On peux voir cela comme un lien symboliques - ./data_wps:/var/www/html
## Définition du service de la base de donnéess db: ## Image utilisée pour le conteneur, ici nous récupérons la dernière version de mysqls image: mysql:5.7 ## Redémarrage du conteneur en cas de crash, redemarrage de l'hôte, etc...s restart: always ## Définition du nom du conteneur, ici mysql container_name: mysql ## Définition des variables d'environnement pour le conteneur, ici nous définissons les informations de connexion à la base de données environment: ## Nom de la base de données MYSQL_DATABASE: wordpressdb ## Nom d'utilisateur de la base de données MYSQL_USER: user-wordpress ## Mot de passe de l'utilisateur de la base de données MYSQL_PASSWORD: password-wordpress ## Définition du mot de passe root de la base de données MYSQL_RANDOM_ROOT_PASSWORD: '1' ## Définition des volumes pour avoir des données persistante après le redémarrage volumes: ## Création d'un disque virtuel 'db' pour stocker les données de la base de données ## on utilise un disque virtuel pour des raisons de performances avec les DB - db:/var/lib/mysql## Définition des volumesvolumes: ## Définition du volume 'db' qui sera utilisé par le service db ## Les {} sans arguments laisse docker choisir le nom du volume et gérer les différents options db: {}
Petit docker compose up, sans le D cette fois histoire de voir les logs en direct !
Si on observe bien les logs on voit que le démarrage de wordpress ne se fait que lorsque que mysql est prêt ! merci l’option depends_on !
On fait un petit docker ps pour voir nos conteneur.
Ici on peux voir que nos conteurs sont bien lancé depuis X temps. On peux voir que wordpress accepte la connexion de toutes les IPs sur le port 8080 et renvoie dans le conteneur sur le port 80.
On aperçois aussi le port 3306 sur le conteneur mysql, pourtant nous avons pas indiqué d’argument ?
Ouvrez le votre navigateur et allez sur http://localhost:8080
Et voici notre Wordpress :
Continuez l’installation jusqu’a finir sur la page de connexion et ensuite le tableau de bord.
Maintenant nous allons rajouter un service à notre docker compose !
PhpMyAdmin va nous permettre de voir les tables de notre base de données et de la managé si besoin. (Attention ! Ne jamais utilise ce type de méthode en production !)
Voici le services à ajouter dans le docker compose :
## Définition du service phpmyadmin phpmyadmin: ## Image utilisée pour le conteneur, ici nous récupérons la dernière version de phpmyadmin image: phpmyadmin ## Redémarrage du conteneur en cas de crash, redemarrage de l'hôte, etc... restart: always ## Définition du nom du conteneur, ici phpmyadmin container_name: phpmyadmin ## Expostion du port 80 du conteneur vers le port 8000 de l'hôte ports: - 8000:80 ## Définition des variables d'environnement pour le conteneur, ici nous définissons les informations de connexion à la base de données environment: ## Utilisateur de la base de données - PMA_USER=user-wordpress ## Mot de passe de l'utilisateur de la base de données - PMA_PASSWORD=password-wordpress ## Ici on déclare une liaison avec la base de données, ## pour s'assurer que le conteneur db est bien démarré avant le conteneur phpmyadmin depends_on: ## Nom du service sur lequel on dépend, ici db - db
Maintenant sur localhost:8000 nous avons de quoi administrer plus facilement notre base de données !