0% ont trouvé ce document utile (0 vote)
40 vues3 pages

TP 3 Clodez

Ce TP vise à familiariser les étudiants avec le déploiement d'applications virtuelles via Docker, en incluant l'installation, la manipulation de conteneurs et l'exécution de commandes. Les étudiants doivent réaliser plusieurs activités pratiques, telles que le lancement de conteneurs web, la création d'images et la gestion des volumes. Le TP nécessite des droits d'administration sur Ubuntu et une connexion Internet active.

Transféré par

Yahia Hf
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
40 vues3 pages

TP 3 Clodez

Ce TP vise à familiariser les étudiants avec le déploiement d'applications virtuelles via Docker, en incluant l'installation, la manipulation de conteneurs et l'exécution de commandes. Les étudiants doivent réaliser plusieurs activités pratiques, telles que le lancement de conteneurs web, la création d'images et la gestion des volumes. Le TP nécessite des droits d'administration sur Ubuntu et une connexion Internet active.

Transféré par

Yahia Hf
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ISI-L3CS TP 3 : Docker 2021-2022

1. Objectif du TP :
L’objectif principal de ce TP est de se familiariser avec les aspects nécessaires pour le
déploiement d’applications virtuelles en exploitant la technologie des containers. Cette
technique de virtualisation sera exploitée et exécutée en utilisant le gestionnaire de containers
Docker. Pour ce faire, ce TP est organisé comme suit :
• Mise en place et installation de Docker (sous Linux)
• Test est comprendre une liste de commandes
• Manipulation d’un conteneur web

2. Les Prérequis de ce TP
• Disposer des droits d'administration sur un OS Ubuntu (20.04)
• Disposer d'une connexion à Internet configurée et activée.

3. Compte-rendu :
Il est demandé de tester les commandes et d’élaborer un compte-rendu sur les 7 Activités
et de l'envoyer par email à la fin de la séance.

4. Présentation de la technologie:
Docker est une plateforme permettant de lancer certaines applications dans des conteneurs
logiciels.
Docker est un outil qui peut empaqueter une application et ses dépendances dans un
conteneur isolé, qui pourra être exécuté sur n'importe quel serveur. Il ne s'agit pas
de virtualisation, mais de conteneurisation, une forme plus légère qui s'appuie sur certaines
parties de la machine hôte pour son fonctionnement. Cette approche permet d'accroître la
flexibilité, la scalabilité et la portabilité d’exécution d'une application, laquelle va pouvoir
tourner de façon fiable et prévisible sur une grande variété de machines hôtes, que ce soit sur
la machine locale, un cloud privé ou public, etc.
Techniquement, Docker étend le format de conteneur Linux standard, LXC, avec
une API de haut niveau fournissant une solution pratique de virtualisation qui exécute
les processus de façon isolée. Pour arriver à ses fins, Docker utilise entre autres
LXC, cgroups et le noyau Linux lui-même1. Contrairement aux machines virtuelles
traditionnelles, un conteneur Docker n'inclut pas de système d'exploitation, mais s'appuie au
contraire sur les fonctionnalités du système d’exploitation fournies par la machine hôte.

VM vs Container Schéma des interfaces de Docker

1
5. Activités :
- Affichage des paquets comportant ‘docker’ , installés ou non, disponibles dans la liste
mise en cache des paquets des dépôts APT configurés :

ishak@ishak-VirtualBox:~$ apt-cache search [Link]

docker-doc - environnement d’exécution de conteneurs Linux – documentation


[Link] - environnement d’exécution de conteneurs Linux
python3-docker - Python 3 wrapper to access [Link]'s control socket
ruby-docker-api - Ruby gem to interact with [Link] remote API

- Installation de Docker
ishak@ishak-VirtualBox:~$ sudo apt-get install [Link]

- Affichage des instances :


Instance en exécution
ishak@ishak-VirtualBox:~$ docker ps
Toutes les instances
ishak@ishak-VirtualBox:~$ docker ps -a

- Lancement d’un conteneur web


ishak@ishak-VirtualBox:~$ docker run -tid -p 8080:80 --name webcontainer nginx:latest
ishak@ishak-VirtualBox:~$ docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c646d4eed813 nginx:latest "/docker-entrypoint.…" 21 minutes ago Up 21 minutes [Link]:8080->80/tcp, :::8080->80/tcp webcontainer

- Afficher les détails du conteneur


ishak@ishak-VirtualBox:~$ docker inspect webcontainer
Pour formater l’affichage des informations vous pouvez utiliser : --format
Exemple : docker inspect --format ‘{{ .[Link] }}’ webcontainer

- Afficher les images disponibles sur notre Machine : docker image ls


- Supprimer le conteneur avec la commande : docker rm webcontainer
- Lancer une nouvelle instance de l’image nginx:latest

Activité1 : Quelle est la différence entre le premier et le deuxième lancement du conteneur.

Exécution de commande shell dans le conteneur :


ishak@ishak-VirtualBox:~$ docker exec -ti webcontainer sh

Activité 2 : Modifier la page d’accueil de votre serveur web

- Afficher les commandes de gestion des volumes


ishak@ishak-VirtualBox:~$ docker volume

Activité 3 : Créer un volume et lancer un conteneur qui utilise ce volume


docker run -tid --name hichem -p 8080:80 --mount source=<nomVolume>,target=/usr/share/nginx/html nginx:latest
Activité 4 : Modifier le fichier [Link] et l’afficher sur le navigateur.

- Créer une variable d’environnement et l’afficher


docker run -tid --name <nom_conteneur> --env MYVAR="123456" <nom_image :version>
docker exec -it <nom_conteneur> /bin/bash
#env
2
- Créer des variables d’environnement à partir d’un fichier
docker run -tid --name <nom_conteneur> --env-file <nom_fichier.lst> <nom_image :version>

- Lancer un conteneur avec un hostname personalisé


docker run -tid --name <nom_conteneur> --hostname <nom> <nom_image :version>

- Création d’une image à base d’un conteneur


ishak@ishak-VirtualBox:~$docker commit -m "Création de mon image" 0c8b91807eca
hichemimg:v0.1
sha256:0908830aa2f8973079874d24883bbfdafe0abd8a1efeb90732ddaaeb5ce3791c
ishak@ishak-VirtualBox:~$ docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
hichemimg v0.1 0908830aa2f8 About a minute ago 72.8MB

Activité 5 : Créer une image à partir d’un conteneur d’un serveur web avec un hostname personnalisé.

- Création d’une image par un dockerfile


Editer le fichier : vim dockerfile
Puis taper les lignes suivants et enregistrer le fichier
FROM ubuntu:latest
MAINTAINER hichem
RUN apt-get update \
&& apt-get install -y vim git \
&& apt-get clean \
&& apt-get clean \
&& rm -rf /var/lib/apt/listes/* /tmp/* /var/tmp/*

- Lancement la commande build : docker build -t monimage:latest .

- Lancement la commande history : history monimage:latest

Activité 6 : Lancer un conteneur à partir de l’image créée et vérifier le contenu du conteneur

- Effacer le conteneur et l'image :


ishak@ishak-VirtualBox:~$ docker rm -f testmonimage
ishak@ishak-VirtualBox:~$ docker rmi monimage:v0.0

Activité 7 : Utiliser les commandes suivantes pour archiver une image, voir le contenu du
fichier archive puis récupérer une image à partir d’un fichier archive.
Ajout des commandes pour faire des affichages de vérification.
docker save -o [Link] <nom_image :version>
mkdir dtar
tar -C dtar/ -xvf [Link]
cd dtar
tree
docker rmi <nom_image :version>
docker load -i [Link]

Bon Travail !
3

Vous aimerez peut-être aussi