Vous êtes sur la page 1sur 21

TD Docker

Bala Cogoulane

Exercice 1 : Installation

Installation du logiciel docker et vérification de la version

Exercice 2 : Manipulation conteneur


1. Pour afficher tous les conteneurs actuellement en fonctionnement sur la
machine il faut utiliser la commande docker ps, pour afficher tous les
conteneurs, meme ceux qui sont down il faut utiliser la commande docker
ps -a

Ensuite je lance Docker DESKTOP

Ensuite je copie docker run -d -p 80:80 docker/getting-started que je vais l’exécuter dans
powershell
Maintenant quand je fais un docker ps-a je vois bien en status up

2. . La commande pour creer un conteneur Ubuntu est la suivante : docker


run --interactive --tty --name my-ubuntu ubuntu

3. La commande pour creer un conteneur nginx detache du terminal est la


suivante : docker run --name my-nginx -d nginx

4. Pour afficher l’adresse ip du conteneur nginx il faut faire docker inspect


my-nginx et chercher l’attribut IPAddress
5. Etant donne que l’image nginx expose un port (80) il faut binder ce dernier
pour pouvoir acceder au conteneur depuis notre machine. Il faut rajouter
le parametre -p 8080:80 a la commande de la ligne 3. Et ensuite si on se
rend sur http://localhost:8080, on aura l’index.html qui sera affiche

6. Pour exporter uniquement le nom des conteneurs en fonctionnement il faut


utiliser docker ps --format '{{.Names}}' > conteneur-actif.txt

7. Il y a 2 facon de supprimer des conteneurs docker : docker rm


-f my-nginx my-ubuntu ou docker stop my-nginx && docker rm
my-nginx my-ubuntu
Exercice 3 : Manipulation d’un volume
1. Pour lister l’ensemble des volumes sur une machine il faut utiliser la
commande docker volume ls

2. Pour stocker le nom de tous les volumes dans un fichier nommé volume.txt

docker volume ls > volume.txt

Pour vérifier

3. Pour creer un volume il faut utiliser la commande docker volume create


html-nginx

Pour vérifier

4. Pour monter un volume lors de la creation d’un conteneur ng-


inx il faut utiliser la commande : docker run --name my-nginx
--mount source=html-nginx,destination=/usr/share/nginx/ -d
-p 8080:80 nginx

5. Pour monter ce volume sur le path /usr/html/file il faut utiliser la commande :


docker run -dit --name my-ubuntu --mount source=html-
nginx,destination=/usr/html/file
ubuntu
6. Pour modifier un fichier sur notre conteneur Ubuntu il faut installer un
editeur de texte, dans notre cas ca sera vim. Pour se faire il faut se
connecter en TTY sur le conteneur en utilisant la commande : docker
exec -it my-ubuntu /bin/bash il suffit ensuite de faire apt-get update
&& apt-get install vim et de modifier le fichier index.html avec vim.
7. Meme operation mais pour installer cURL sur le conteneur nginx docker
exec -it my-nginx /bin/bash

8. Installation de cURL avec apt-get update && apt-get install curl

9. curl http://localhost permet d’interroger l’adresse et de voir afficher


le contenu du fichier index.html
10. Un volume permet de partager des dossiers et des fichiers entre plusieurs
conteneurs. La modification d’ajout du body Hello World a été faite depuis ubuntu
et on constate que depuis le container nginx la modification a été prise.

Exercice 4 : Création d’images


Pour cet exercice je vais créer un répertoire exercice 4

1.Clonage du projet de Jimmy


2. Analyse du fichier app.js

L’application est un serveur express qui n’a qu’une seule route (‘/’) et qui
repond “Bonjour tout le monde” lorsqu’on l’interroge
Le port d’écoute par défaut est le port 8080

3. Pour creer une image en utilisant la methode commit


Je crée dabord l’image simple-webapp avec l’option ti=terminal interactif et
demandant d’être positionner dans /bin/bash

Quand je veux cloner il m’indique que git n’est pas connu et du coup je procède à
l’installation de git
Une fois git installer je peux cloner le projet dans mon image que j’ai créer

Quand je vais sur mon répertoire docker-simple-api je vois bien les fichiers

Installation de nodeJS
Installation de npm

Copie de l’image

Vérification
4. Desormais il ne nous reste plus qu’a lancer notre nouveau conteneur docker
run --name=my-webapp-1.0 -d -p 8080:8080 simple-webapp:1.0.0

On lance maintenant l’application

5. Vu que dans l’énoncé précédent l’appli app a déjà été lancé sur le port 8080 je
vais relancer la même commande et changer app en app1 et binder le port 8080
en 8088

Lorsqu’on se rend sur http://localhost:8888 on voit bien “Bonjour tout


le monde” d’afficher

6. Dans un premier temps il faut creer un dockerfile :


Je créer un fichier directement à l’emplacement de mon
répertoire : C:\Users\utilisateur\exercice4\docker-simple-
api et ensuite je vais l’ouvrir avec visual code et je vais
insérer les commandes
Vérification

Je construis l’image simple-webapp :2.0.0 a partir de la commande docker build . -t simple-


webapp:2.0.0
Je vois bien avec la commande docker images que le simple-webapp en version 2.0.0 vient d’être
créer

Je lance l’application dans le conteneur sur le port 8082 sans modifier le code source de l’application

Ensuite j’accède à l’application via le port 8889 sur le navigateur en modifiant le port du container de
ma machine vers le port 8889.
Exercice 5

1.

Je clone le projet https://gitlab.com/Jimmy.Trackoen/docker-db-connection

Vérification

Analyse du fichier app.js


Nous voyons une application web Node.js avec les modules Express et Mysql2

Mysql2 : connexion a la base de donnée

Express : crée une route pour envoyer un message de connexion (OK ou echec)

On voit aussi des variables pour définir un port

Lancer un conteneur à partir de l’image mysql écoutant sur le port 3306

Vérification
On voit bien que c’est KO

Je lance la commande docker logs mysql pour voir ce qui m’affiche comme erreur

Par rapport aux variables qu’il nous dit de changer

Je supprime le container que je viens de créer pour recréer une nouvelle

Maintenant nous voyons bien sur le port 3306 sur la ligne mysql, chose que nous avons pas vu tout a
l’heure

4 Lancer un conteneur à partir du projet cloner à l’étape 1

Avec ces éléments je vais construire une image


Vérification : Vérification KO
Je vais à l’emplacement ou se trouve le fichier dockerfile : C:\Users\utilisateur\exercice5\docker-db-
connection

J’ouvre le fichier dockerfile avec visual code

Je modifie ce fichier en celui-ci-dessus


Je relance le build

Vérification :

La je vois bien mon fichier avec le tag

5. Ouverture du navigateur sur la page localhost :8787 et ‘assurer qu’il affiche bien le message
« connection à la DB successfull »

Pour cela je dois lancer la commande docker inspect mysql pour avoir l’adresse ip
Ensuite je binde le port 8787

6. je crée un compte sur https://hub.docker.com/

Mail bcogoulane@gmail.com

Nom : balacogoulane

7. Nommer votre image docker-db-connection:1.0.0

Voila comment s’appel pour l’instant le fichier


8. Pousser l’image dans un repository public

Vous aimerez peut-être aussi