-- Création de la VM -- *on récupère le CentOS.ova dans /partages/VMs Virtualbox *si erreur VirtualBox : sudo /etc/init.d/vboxdrv setup *démarrer la VM : root / admin *vérifier adresse IP avec : #ip addr (192.168.56.101) -- Installation et démarrage de Docker -- *depuis machine physique : $ssh root@192.168.56.101 (yes, admin) *sur VM : vi /etc/resolv.conf => nameserver 8.8.8.8 *yum update *yum install (lvm2) docker installation de lvm2 si pas de update avant *systemctl start docker *docker --version => 1.9.1 *docker images (lister les images locales) -- Utilisation de docker -- *docker pull debian:wheezy *docker run -t -i debian:wheezy /bin/bash Puis dans le conteneur : useradd asr1 useradd asr2 mkdir /var/www /var/www/dev /var/www/dev/site1 exit *ce que nous venons de créer n'existe plus car c'est un nouveau conteneur créé sur l'image de départ (sans les modifs apportées sur le premier conteneur donc) *docker commit -m "Ajout /var/www/dite/dev et des user asr1 et asr2" -a "Edouard Lumet" e3fa1c91b579 lumet/debian_modif -- Création d'un serveur de développement -- Création de l'image *on crée un répertoire sur la VM CentOS ~/site-dev/ par exemple : mkdir ~/site-dev *puis on se déplace dans celui-ci : cd ~/site-dev *on crée ensuite le dockerfile : vi dockerfile FROM debian:wheezy MAINTAINER Edouard Lumet RUN apt-get update RUN apt-get install -y apache2 php5 libapache2-mod-php5 RUN mkdir -p /var/www/site1 RUN mv /var/www/index.html /var/www/site1/index.html RUN chown -R www-data:www-data /var/www/ ADD site1.conf /etc/apache2/sites-available/site1 RUN a2dissite 000-default RUN a2ensite site1 RUN service apache2 reload CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"] *on crée le fichier site1.conf : ServerAdmin webmaster@asr.edu DocumentRoot /var/www/site1 allow from all ErrorLog /var/log/apache2/site1-error.log CustomLog /var/log/apache2/site1-access.log combined ServerSignature On *construction de l'image : #docker build -t lumet:site1-dev . *on instancie l'image pour tester si tout est opérationnel : #docker run -t -i lumet:site1-dev /bin/bash *$ls /var/www nous renvoie bien site1 (suite) *On lance le conteneur en mode démon avec privilèges et redirection de port: #docker run --privileged=true -d -p 80:80 lumet:site1-dev *ATTENTION: ne pas oublier de stopper les précédents conteneurs sinon docker indique que le port est déjà utilisé : #docker stop *Dans un navigateur ou avec wget, on voit en effet la page index.html d'Apache que nous avons déplacé dans /var/www/site1 NB: on se connecte avec l'adresse de la VM centOS (192.168.56.101) Mise à jour du contenu du site *On crée sur la machine hôte un répertoire hébergeant le site de test : #mkdir monSite *On y crée un fichier phpinfo.php : #vi monSite/phpinfo.php dont le contenu est : *On stoppe les conteneurs et on en ré-exécute un en mode démon avec partage du répertoire : #docker run --privileged=true -d -p 80:80 -v /root/monSite:/var/www/site1 lumet:site1-dev *Depuis le navigateur, on voit maintenant que phpinfo.php est listé et on voit le résultat de la focntion phpinfo() à l'adresse 192.168.56.101/phpinfo.php