TP Docker
Prsentation
L'objectif de ce TP est de prendre en main et de manipuler l'outil Docker dans le cadre d'une
approche "DevOps" pour la cration d'environnement de dveloppement et/ou de production
jetables.
Cration de la machine virtuelle
Il est ncessaire de disposer d'une distribution Linux ayant un noyau suffisamment rcent afin de
disposer de tous les mcanismes ncessaires la bonne utilisation de l'outil.
Une distribution prinstalle CentOS 7 est mise disposition pour la ralisation de ce TP.
Se connecter sur WEBETUD2 et tlcharger le VDI CentOS7 mis disposition.
Crer l'instance de machine virtuelle en utilisant les paramtres suivants :
Nom : CentOS 7 - TP Docker
Type / Systme : Linux
Version : Red Hat (64 Bit)
Mmoire : 1024 Mo
Disque dur - Utiliser un disque dur existant : Importer le disque dur VDI tlcharg
prcdemment
Affiner le paramtrage de la machine virtuelle en considrant les paramtres suivants
Affichage
Mmoire Vido : 32 Mo
Rseau
Carte Rseau 1 uniquement.
Mode d'accs : NAT
Mettre en place une redirection de ports pour pouvoir se connecter en SSH sur la machine
virtuelle depuis la machine Windows en utilisant PUTTY. (Rappel : Le port SSH standard est
22)
Dmarrer la VM
Installation et dmarrage de Docker
Se connecter la machine virtuelle via SSH (Identifiants : root/iutb31700!)
Mettre jour les packets CentOS : yum update (1er Avril)
Installer puis dmarrer Docker comme vu en cours
Vrifier que Docker fonctionne en listant les images locales
Utilisation de Docker
Tlcharger depuis le registre Docker HUB l'image Debian issue du dpt officiel identifie par
le tag stable. (docker search)
Lancer un conteneur Docker bas sur l'image Debian stable et excuter le shell /bin/bash
Raliser les oprations suivantes dans le conteneur :
Crer les utilisateurs asr1 et asr2
Crer le rpertoire /var/www/site/dev
Sortir du conteneur en quittant le shell lanc l'intrieur de celui-ci
Relancer le conteneur. Que constatez vous ? Pourquoi ?
Corriger le problme en utilisant une des possibilits de Docker
Cration d'un serveur de dveloppement
Cration de l'image
On souhaite mettre en place un serveur de dveloppement Apache/PHP bas sur une Debian
Wheezy stock dans un conteneur Docker. Pour cela, on souhaite crer un modle (image)
permettant d'instancier ce type de conteneur.
Ecrire un fichier Dockerfile ralisant les oprations suivantes :
Mettre jour la liste des paquetages
Installation des paquetages apache2 php5 libapache2-mod-php5 (Utiliser le
paramtre -y pour confirmer automatiquement l'installation des paquetages)
Crer le rpertoire /var/www/site1 hbergeant le futur site de test
Dployer le fichier de configuration suivant dans le rpertoire des sites disponibles
d'Apache de l'image
<VirtualHost *:80>
ServerAdmin
[email protected] DocumentRoot /var/www/site1
<Directory /var/www/site1/>
Order deny,allow
deny from all
</Directory>
ErrorLog /var/log/apache2/site1-error.log
CustomLog /var/log/apache2/site1-access.log combined
ServerSignature On
</VirtualHost>
Dsactiver le site web par dfaut (cf. TP2) et activer le nouveau site
Gnrer l'image partir du fichier Dockerfile et stocker celle-ci dans un dpt local.
Lancer le conteneur partir de l'image cre en mode non interactif
Vrifier que le conteneur est correctement lanc puis tester l'accs au site Web de test dploy
depuis :
La machine virtuelle CentOS (wget)
L'hte Windows (Utilisation d'un navigateur graphique)
Ajout du fichier phpinfo.php
Crer un fichier phpinfo.php sur la machine hte et l'insrer au bon
endroit dans le conteneur
Refaire le buid et tester depuis CentOS et Windows (C)
Examiner les adresses IPs source et destination indiqus par
phpinfo.php
Pour aller plus loin
Maintenant que notre image est fonctionnelle, on souhaite la publier sur le registre Docker officiel
afin de pouvoir la partager avec la communaut. La dernire tape du TP consiste crer un compte
sur le registre public et d'y dposer l'image cre prcdemment.
Cration d'un compte
Se rendre sur le site https://hub.docker.com/account/signup/ et crer un compte
personnel.
Procder la validation par "E-Mail" afin de pouvoir accder toutes les fonctionnalits du
compte.
Cration du dpt en ligne
Se rendre dans la section "Repositories" de son espace personnel puis lancer l'assistant de
cration d'un dpt
Remplir le nom du dpt et la description et configurer celui-ci pour qu'il soit Public
Mise disposition de l'image
Depuis la machine virtuelle s'authentifier sur le registre docker (docker login)
Envoyer l'image sur le registre Docker (docker push)
Vrifier sur le site Web du registre Docker que l'image est bien disponible
Rcupration d'une image dpose
Tlcharger une image dpose par un autre groupe sur le registre Docker et instancier un
container partir de celle-ci.