What’s up les gars ! tout roule pour vous ?

 

Introduction

Aujourd’hui je vais aborder un thème différent donc ça ne sera pas de CTF, mais croyez-moi, très intéressant ! J’ai beaucoup entendu parler de Docker ça vous parle vous ? Eh bien je vais vous montrer comment l’installer, le configurer et son utilité 😉.

NB : Les services Docker sont largement utilisés dans les opérations informatiques, il est donc très important que vous commenciez à apprendre les bases de Docker. 

 

Présentation

Docker est un outil tiers développé pour créer un environnement isolé pour exécuter n’importe quelle application. Ces applications sont exécutées à l’aide de conteneurs (containers). Ces conteneurs sont uniques car ils rassemblent toutes les dépendances d’une application dans un seul package et le déploient, plutôt pratique non ?

 

Bon, afin de pouvoir travailler avec docker, je dois installer docker-engine sur ma machine. C’est la base du système docker, qui fonctionne essentiellement comme une application client-serveur. Son processus démon est appelé serveur et l’interface de ligne de commande est appelée client et le REST API est utilisé pour créer un lien de communication entre le client et le serveur.

C’est un peu du charabia au début mais ça viendra, pas de panique !

NB : Sous Linux, le client docker interagit avec le serveur docker via la CLI. Ici, le terminal est un client docker et l’hôte docker exécutera le démon docker. Alors que sous Windows il faut installer le composant docker toolbox.

 

 

Lexique de base de Docker

Alors, avant de travailler avec docker, il faut se familiariser avec les termes suivants :

  • Docker Hub : il s’agit d’un référentiel accessible à tous ceux qui utilisent Docker via le cloud. Grâce au docker hub, je peux créer, stocker, tester, extraire et partager des images de conteneurs.

 

  • Images Docker : l’image Docker sert de modèle pour créer un conteneur. La commande Build est utilisée pour créer des images docker. Elles facilitent la tâche.

 

  • Containers Docker : Les conteneurs sont dits être un environnement isolé fourni à l’image Docker et à ses dépendances afin qu’elles puissent s’exécuter indépendamment. L’objectif du déploiement d’un conteneur est de mettre à jour ou de réparer une application ou simplement la modifier et la partager. Lorsque vous travaillez sur une image, le conteneur vous permet de créer une couche d’une seule commande utilisée, ce qui facilite sa modification, la mise à niveau ou la dégradation de sa version.

 

  • Registre Docker : Toutes les images Docker sont stockées dans le registre Docker.

 

Installation et pratique

Pour installer docker, j’ouvre mon terminal sous Linux et je tape la commande suivante :

apt installer docker.io

 

Maintenant que l’installation est terminée je vérifie la version et je jette un coup d’œil sur le menu d’aide :

docker –version

docker –help

 

 

Après avoir observé le menu, je peux exécuter ou extraire n’importe quelle image dans mon conteneur Docker. Par exemple, pour que ce soit plus clair ici, je lance hello-world.

Lorsque j’exécute la commande suivante, elle vérifie d’abord mon référentiel local ; si l’image n’y est pas disponible, elle sera extraite du docker hub. Je vous montre :

docker run hello-world

C’est fait !

 

Comme je vous ai expliqué précédemment, CLI fonctionne en tant que client, donc directement depuis le terminal, je peux rechercher n’importe quelle image que je souhaite. Ici, je vais rechercher ubuntu.

Dès que j’aurai trouvé mon image, je peux la glisser dans mon container :

docker search ubuntu

docker pull ubuntu

 

Je peux checker et supprimer une image et pour cela je tape :

docker images

docker rmi hello-world

Cette commande n’ayant pas fonctionné pour moi, j’ai utilisé une autre commande :

docker rmi -f hello-world (ici l’option -f signifie force la suppression)

 

Un nom aléatoire est généré par docker pour chaque image. Pour renommer ce nom j’utilise ces commandes :

docker run -it -d ubuntu

docker run -it -d –name « testbox » ubuntu

docker ps

Ici, j’ai renommé l’image ubuntu en testbox et je liste pour voir que ça a bien fonctionné.

 

Lorsqu’il y a un conteneur en cours d’exécution, je peux m’attacher à ce dernier à l’aide de l’ID ou du nom du conteneur, cependant je ne pourrais utiliser qu’une seule instance de shell via la commande attach.

NB : Mais si j’ai envie d’ouvrir un nouveau terminal avec une nouvelle instance du shell du conteneur, j’ai juste besoin d’exécuter docker exec.

docker attach testbox

Pas très compliqué pour le moment 😉

 

Si je veux arrêter le conteneur en cours d’exécution, je peux utiliser la commande stop qui arrêtera le conteneur et son processus.

À l’aide de la commande docker ps -a, je peux le voir :

docker stop textbox

docker rm testbox

docker ps -a

Si je veux exporter le système de fichiers docker en tant qu’archive je le peux en tapant :

docker export c206b3d7dc10 | gzip > testbox.gz

Je vérifie sur ma machine local avec la commande ls, et c’est ok !

 

En revanche, si j’exporte le conteneur en tant que fichier .gz, le fichier a une valeur de hachage :

docker export c206b3d7dc10 | gzip > /home/ubuntu/testbox.gz

cat /home/ubuntu/testbox.gz | docker import – newtestbox ( et vous allez voir le hachage)

Nickel !

 

Et pour terminer ce mini tuto, si je veux effacer toutes les images et/ou arrêter tous les processus du conteneur. Je peux utiliser ce qui suit : docker rm -f $(docker ps -aq)

Il emballera les couches et les métadonnées de toute la chaîne nécessaire à la construction de l’image.

Je vérifie pour être sûr que tout est bien supprimé :

docker ps

Voilà !

 

Conclusion

C’est terminé pour cet article les amis, je voulais personnellement vous faire découvrir docker car il est très populaire et très utilisé de nos jours, donc il est primordial de se familiariser avec.

Au début, il se peut que se soit difficile à comprendre mais ne vous inquiétez pas ça va venir avec de la pratique et des petits bug 😊.

En tout cas, je suis à votre disposition si vous avez des questions ou des difficultés.

À bientôt pour un prochain article, PEACE !

No responses yet

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.

14 + 20 =

Follow by Email
YouTube