CH6 : Machines virtuelles,
containers et Cloud
TP1 : Création d'un script tiré d'un cas concret
d'entreprise
Durant ce TP, vous allez installer découvrir docker et installer WordPress sur votre machine
virtuelle à l’aide de conteneurs Docker.
Q1 : D’après la page d’installation de Docker, à quoi doit-on s’attendre
avec le pare-feu ufw ?
Installez Docker et lancez un conteneur à partir de l’image « hello-world » comme présenté
dans la procédure : [Link]
Q2 : Téléchargez l’image docker « ubuntu », avec le tag « 24.04 », avec
la commande : « docker pull ubuntu:24.04 ».
Q3 : Lancez un conteneur à partir de l’image que vous venez de
télécharger avec la commande : « docker run -it ubuntu:24.04
/usr/bin/bash ». Vous devriez avoir un shell ouvert avec un hostname
différent. Listez les processus avec « ps -aux ». Quel processus a le PID
1?
Q4 : Installez le paquet « iproute2 » sur le conteneur. Ce paquet contient
la commande « ip », vu hier.
Q5 : Quelle est l’IP à l’intérieur du conteneur ? Quelle interface de votre
VM appartient au même subnet ?
Vous pourrez ouvrir un deuxième terminal pour tester sans quitter le conteneur.
Q6 : Quittez votre conteneur avec « exit ». A quoi sert la commande
« docker ps » ? Quelle différence constatez-vous en rajoutant le
paramètre « -a » ?
Q7 : Relancez la même commande que la Q3. Est-ce que le paquet
« iproute2 » est toujours installé ?
Q8 : Supprimez les conteneurs inutilisés avec « docker
rm <CONTAINER> »
Q10 : Le port 80 de votre machine devrait être utilisé par apache2,
installé hier. Arrêtez le service apache2 avec « systemctl » pour libérer
le port 80.
Q11 : Lancez un site wordpress avec le docker compose suivant :
services:
db:
image: mariadb:11
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
- MYSQL_ROOT_PASSWORD=somewordpress
- MYSQL_DATABASE=wordpress
- MYSQL_USER=wordpress
- MYSQL_PASSWORD=wordpress
expose:
- 3306
wordpress:
image: wordpress:latest
ports:
- 80:80
restart: always
environment:
- WORDPRESS_DB_HOST=db
- WORDPRESS_DB_USER=wordpress
- WORDPRESS_DB_PASSWORD=wordpress
- WORDPRESS_DB_NAME=wordpress
volumes:
db_data:
Vous pourrez enregistrer le fichier sous « [Link] ». Puis démarrer le tout avec
« docker compose up -d ».
Q12 : Vérifiez que le site « [Link] » propose le formulaire
d’installation de WordPress. Vous avez installé WordPress !
Q13 : Obtenez les 3 premières lignes de logs du conteneur wordpress
avec « docker logs <WORDPRESS> »
Q14 (Bonus): Les dossiers de votre machine sont séparés des
conteneurs. Créez un dossier « /data » sur votre machine, et le rendre
accessible depuis un conteneur basé sur « ubuntu:24.04 », dans le
dossier « /persistent ». Créez un fichier depuis le conteneur dans ce
dossier et vérifiez que le contenu est bien persisté dans le dossier /data
de votre machine.
Q15 (Bonus) : Le Juice Shop développé par OWASP est un site internet
intentionnellement vulnérable à de nombreuses attaques. Lancez un
conteneur à partir de cette image et exploitez un maximum de
vulnérabilités du site : [Link]