-- 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