Vous êtes sur la page 1sur 6

VIRTUALISATION ET CLOUD COMPUTING | SALAHEDDINE.

HEBABAZE

Compte rendu : Les conteneurs Docker

Les objectifs :

 Installer docker
 Exécuter un conteneur
 Arrêter et supprimer un conteneur
 Inspecter les conteneurs en cours d'exécution
 Créer et gérer une image docker

I. Configuration hôte Docker et premiers containers

1. L'environnent de Travail:
Ubuntu VM sous VMware Station 15 (4 GB de RAM 40 GO HDD)
2. installation de Docker :
pour l'installation de Docker j'ai suivi les étapes suivantes :

▷ avant de commencer le TP :
sudo apt update
sudo apt install curl

a. J'ai récupéré ici avec « curl » une clé pour la signature des dépôts de Docker.
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

• Pour vérifier ma signature :


sudo apt-key fingerprint 0EBFCD88

b. Ensuite, j'ai ajouté, à l'aide de add-apt-repository ces dépôts dans ma liste de


dépôts sur Ubuntu.
sudo add-apt-repository "deb [arch=amd64]
https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

c. Ensuite j'ai fait un sudo-apt-get-update pour mettre à jour la liste de ces


dépôts :
sudo apt-get update

d. installation de service docker engine et containerd:


sudo apt-get install docker-ce docker-ce-cli containerd.io

e. Démarrer le service et activer docker :

CLOUDHPC | ENSIAS
sudo service docker start
service docker status
sudo systemctl enable docker

f. Afficher la version installer de Docker


docker --version

g. Tester la installation :
sudo docker run hello-world

h. Ajouter votre utilisateur actuel au group docker :


sudo usermod -aG docker usor

3. Téléchargement de l'image Ubuntu


si l’image n'existe pas cette commande permet de télécharger
automatiquement l'image Ubuntu et l'accédée
sudo docker run -it ubuntu bash

Print scr 1 : téléchargement de l'image et création de conteneur


• Pour afficher les images docker :
sudo docker image ls

Print scr 2 : Les images docker sur ma machine

II. Premier container :


1. La commande suivante permet de démarrer le conteneur juste pour une instant :
docker run ubuntu
2. la différence entre les deux commandes suivant que sans le paramètre a ,on aura
seulement les conteneur active ,et avec le paramètre a on aura aussi
l'historique des conteneurs activés précédemment dur notre machine

SALAHEDDINE.HEBABAZE | ENSIAS
Print scr 3 : l'option ps Vs ps -a

3. Pour exécuter la commande suivante il faut d'abord la télécharger (apt-get


install -y lsb-release)

Print scr 4 : la version (release) de la distribution linux


4. afficher les conteneurs actifs :

Print scr 5 : Les conteneurs Actifs


5. .
6. "(a) Listez les interfaces réseaux de votre container.
Il faut d'abord installer l'outil net-tools pour afficher les
interface réseaux : apt-get install net-tools

Print scr 6 : La configuration TCP/IP de conteneur


(b) Quelle est l’adresse IP de votre container ?:
172.17.0.2
(c) La passerelle par défaut est :
172.17.0.1

SALAHEDDINE.HEBABAZE | ENSIAS
Print scr 7 : affichage de Table de routage
7. Quitter ou arrêter le conteneur ||attacher le conteneur :

8. Arrêter le conteneur :
docker rm ubuntu

III. Gestion des containers :


1. Démarrer un autre conteneur avec le nom "salahdocker"
docker run -ti --name=salahdocker ubuntu /bin/bash
2.
(a)inspecter ce que passe sur le conteneur avec la commande :
docker logs salahdocker
(b) surveiller l'usage de CPU et RAM :
docker stats salahdocker

IV. Gestion des images


1. Pour afficher les images docker sur ma machine :
docker images
2. télécharger l'image d'apache
docker pull httpd
3. les étapes à suivre pour créer notre propre image :
(a): créer un répertoire :
mkdir -p ~/Docker/Apache
(b): créer un fichier Dockerfile qui contiendra le texte suivants :
FROM ubuntu:latest
MAINTAINER Votre nom
RUN apt-get -yqq update && apt-get install -yqq apache2
WORKDIR /var/www/html
ENV APACHE_RUN_USER www-data
ENV APACHE_RUN_GROUP www-data
ENV APACHE_LOG_DIR /var/log/apache2
ENV APACHE_PID_FILE /var/run/apache2.pid
ENV APACHE_RUN_DIR /var/run/apache2
ENV APACHE_LOCK_DIR /var/lock/apache2
RUN mkdir -p $APACHE_RUN_DIR $APACHE_LOCK_DIR $APACHE_LOG_DIR
ENTRYPOINT [ "/usr/sbin/apache2" ]
CMD ["-D", "FOREGROUND"]

SALAHEDDINE.HEBABAZE | ENSIAS
EXPOSE 80
(c) :pour exécuter la commande build il faut être dans le même
emplacement que le fichier DockerFile est exécuter la commande
suivante :
sudo docker build -t="usor/apache" .

sachant que le point est signifié l'emplacement actuel


(d) :quand l'opération est terminée on peut lister notre images
docker avec la commande : #docker images

V. Faire tourner des applications avec Docker:


1. Conteneur en démon
(a) : avec l'option -d je lance mon conteneur sous le mode
démon ,la commande est :
docker run -d --name=demon ubuntu /bin/bash

après la commande ps -a je constate que le conteneur est s'arrêter


directement après son lancement .
(b) : après supprimer le conteneur précèdent on exécute la
commande suivante :
docker run -d --name=demon ubuntu /bin/sh -c "while true ; do echo hello
world ; sleep 1 ; done"
maintenant la command ps affiche que le conteneur est en cours
d'exécution :

(c) : pour afficher que passe-t-il dans le conteneur on


utilise la commande suivante :
docker logs demon
d'après la commande il y a une boucle continue qui affiche "hello
world"

2. Démarrer le conteneur apache comme un démon sur le port 80


docker run -d -p 80 --name=apache usor/apache
3. écouter le trafic de conteneur sur le port 80
docker port apache 80

SALAHEDDINE.HEBABAZE | ENSIAS
après exécuter la commande j'aperçois que le port choisi est :32768

4. On peut mieux contrôler le port choisi par la commande :


i. j'arrête le conteneur (apache) puis je le supprime:
docker stop apache
docker rm apache

ii. j'exécute la commande suivante :


docker run -d -p 80:80 --name=apache usor/apache

iii. verification:

5. Pour mieux contrôler le contenu du serveur Web depuis l’hôte


local :
i. créer un répertoire website dans le répertoire Apache :
mkdir ~/Docker/Apache/website
ii. ajouter dans le répertoire un fichier index.html avec de
contenu html
nano ~/Docker/Apache/website/index.html
iii. arrêter le conteneur apache et exécuter la commande suivante :
docker run -d -p 80:80 -v ~/Docker/Apache/website:/var/www/html--name=apache
usor/apache

Question de recherche :
Comment sauvegarder les modifications sur les conteneurs ou
exactement sur l'image même si on ouvre l'image avec un autre
conteneur

SALAHEDDINE.HEBABAZE | ENSIAS