Docker permet la création de conteneurs en proposant les fonctionnalités suivantes :
Cependant :
Docker-compose est donc un outil permettant de créer et de lancer des architectures avec plusieurs conteneurs en une seule commande.
L'architecture à lancer est décrite au préalable dans un seul fichier au format YAML qui contient toute la configuration nécessaire pour chacun des conteneurs (port exposé, volume à gérer, etc.)
Réaliser le même environnement LAMP avec 3 conteneurs en utilisant Docker-compose :
Les fichiers du site Web et de la base de données sont enregistrés en local en utilisant le principe des volumes de Docker.
Un fichier docker-compose.yml doit être créé avec les instructions nécessaires dont voici celles qui sont à utiliser :
Voici les paramètres de la commande Docker et les équivalents à écrire dans le fichier Docker-compose.yml
Docker | Docker-compose.yml |
---|---|
docker run -d --name servbdd -v c:\www\html\siteweb-bdd:/var/lib/mysql -e MARIADB_ROOT_PASSWORD=passwordmariadb mariadb | services: servbdd: image: mariadb volumes: - c:\www\html\siteweb-bdd:/var/lib/mysql environment: MARIADB_ROOT_PASSWORD: passwordmariadb |
Voici les paramètres de la commande Docker et les équivalents à écrire dans le fichier Docker-compose.yml
Docker | Docker-compose.yml |
---|---|
docker run -d --name phpmyadmin --link servbdd:servbdd -p 8080:80 -e PMA_HOST=servbdd phpmyadmin | services: phpmyadmin: image: phpmyadmin depends_on: - servbdd ports: - 8080:80 environment: PMA_HOST=servbdd |
Voici les paramètres de la commande Docker et les équivalents à écrire dans le fichier Docker-compose.yml
Docker | Docker-compose.yml |
---|---|
docker run -d --name servweb --link servbdd:servbdd -p 8001:80 -v c:\www\html\siteweb:/var/www/html -v c:\www\log:/var/log/apache2 charles/php | services: servweb: image: ctecher/php-mariadb depends_on: - servbdd ports: - 8001:80 volumes: - c:\www\html\siteweb:/var/www/html - c:\www\log:/var/log/apache2 |
version: '3' services: # base de données MariaDB servbdd: image: mariadb volumes: - c:\www\html\nolark-bdd:/var/lib/mysql environment: MARIADB_ROOT_PASSWORD: passwordmariadb # site Web phpmyadmin phpmyadmin: image: phpmyadmin depends_on: - servbdd ports: - 8080:80 environment: PMA_HOST: servbdd # site Web servweb: image: ctecher/php-mariadb depends_on: - servbdd ports: - 8001:80 volumes: - c:\www\html\nolark:/var/www/html - c:\www\html\nolark_logs:/var/log/apache2
La commande docker-compose doit être lancée dans le dossier où se trouve le fichier docker-compose.yml.
docker-compose up -d
Résultat de la commande :
PS C:\www\html> docker-compose up -d [+] Running 4/4 - Network html_default Created 0.1s - Container html-servbdd-1 Started 1.0s - Container html-phpmyadmin-1 Started 1.8s - Container html-servweb-1 Started 1.9s
docker-compose down
Mission :
Voici les variables d'environnement nécessaires pour le conteneur MariaDB :
Voici les variables d'environnement nécessaires pour le conteneur Wordpress :