by Florent DETRES
Pour Apache :
docker pull httpd
Commande :
docker image ls
Commande :
mkdir html
echo "Hello World" > html/index.html
Commande pour Apache :
docker run -d -p 80:80 -v $(pwd)/html:/usr/local/apache2/htdocs httpd
Documentation Volume
Docker Run
Liste des commandes :
- Obtenir l’ID du container actif :
docker ps - Stopper le container :
docker stop <container_id> - Supprimer le container :
docker rm <container_id>
- Lancer le container :
docker run -d -p 80:80 httpd - Copier le fichier dans le container :
docker cp html/index.html <container_id>:/usr/local/apache2/htdocs/index.html
Contenu du fichier Dockerfile (Apache) :
FROM httpd
COPY ./html/index.html /usr/local/apache2/htdocs/
Ecrire un DockerFile
Reference DockerFile
Commande pour builder l’image :
docker build -t custom-httpd .
Commande :
docker run -d -p 80:80 custom-httpd
Montage de volume (-v) :
- Avantages :
- Permet de modifier les fichiers en local sans avoir à reconstruire l’image.
- Pratique pour le développement.
- Inconvénients :
- Dépend du système de fichiers hôte.
- Peut poser des problèmes de permissions ou de performances.
Copie avec docker cp ou via Dockerfile :
- Avantages :
- Produit une image autonome et portable.
- Idéal pour la production.
- Inconvénients :
- Toute modification des fichiers nécessite une reconstruction de l’image.
Pour MySQL :
docker pull mysql
Pour phpMyAdmin :
docker pull phpmyadmin/phpmyadmin
- Créer un réseau Docker :
docker network create my-net
- Lancer un container MySQL :
docker run -d --name <msqyl-container-name> --network <network-name> -e MYSQL_ROOT_PASSWORD=root mysql - Lancer un container phpMyAdmin :
docker run -d --name <phpmyadmin-container> --network <network-name> -p 8080:80 -e PMA_HOST=mysql-container phpmyadmin/phpmyadmin - Accéder à phpMyAdmin via le navigateur à l'adresse :
http://localhost:8080
-
Commandes Docker classiques :
- Nécessitent de lancer chaque container individuellement.
- La gestion des réseaux et des variables d'environnement peut être fastidieuse.
-
Fichier docker-compose.yml :
- Permet de définir les services (containers), réseaux, et volumes dans un seul fichier.
- Simplifie le déploiement grâce à une seule commande pour démarrer ou arrêter tous les services.
- Lancer les containers :
docker-compose up -d - Arrêter les containers :
docker-compose down
version: '3.8'
services:
mysql:
image: mysql
container_name: mysql-container
environment:
MYSQL_ROOT_PASSWORD: root
networks:
- db-network
phpmyadmin:
image: phpmyadmin/phpmyadmin
container_name: phpmyadmin-container
ports:
- "8080:80"
environment:
PMA_HOST: mysql-container
networks:
- db-network
networks:
db-network:
driver: bridge