Docker pour les débutants (Partie 1)

Dans ce nouvel article (Partie 1), on abordera le sujet des conteneurs et Docker.

Pour comprendre pourquoi la technologie Docker est devenue de nos jours si populaire, il est important d’abord de comprendre la différence entre la conteneurisation et la virtualisation.

 

VM vs Conteneur, où est la différence ?

 

—>  Virtual Machines

Les machines virtuelles sont une abstraction du matériel physique qui transforme un serveur en plusieurs serveurs basés sur un hyperviseur.
L’hyperviseur permet à plusieurs VM de s’exécuter sur une seule machine, chaque VM inclut une copie complète d’un OS, les applications et les bibliothèques binaires  nécessaires occupant des dizaines de Go.
Les VMS peuvent également être lentes à démarrer.

 

—>  Conteneurs

Les conteneurs sont une abstraction au niveau de la couche d’application qui regroupe le code et les dépendances.
Plusieurs conteneurs peuvent s’exécuter sur la même machine et partager le même noyau du système d’exploitation avec d’autres conteneurs, chacun s’exécute en tant que processus isolé dans l’espace utilisateur.

Les avantages :

  • Lancer et exécuter le conteneur en quelques secondes au lieu de quelques minutes.
  • Utilise moins de ressources : moins d’espace disque et moins de mémoire.
  • Pas besoin d’un OS complet.
  •  Les applications les plus complexes peuvent être conteneurisées.
  • Déploiement facile des mises à jour.

 

Docker, c’est quoi ?

Docker est une plateforme lancée en mars 2013 et une solution de conteneurisation permettant aux développeurs et aux administrateurs système de développer, déployer et exécuter des applications avec des conteneurs, plus précisément il permet d’embarquer une application avec toutes ses dépendances dans un process isolé (nommé conteneur) qui peut être ensuite exécuté sur n’importe quelle machine avec n’importe quel OS compatible avec le moteur Docker.

 

Installation Docker sous Ubuntu

Il existe 2 versions de Docker : Docker CE (Community Edition) et Docker EE (Enterprise Edition).
La version CE est gratuite et open-source, et correspond à la version packagée par défaut dans les dépôts Ubuntu, mais en version plus récente.
C’est donc l’installation de cette version qui est décrite ci-après, et qui utilise le dépôt officiel mis à disposition par le site Docker.

Mettre à jour l’index APT :

sudo apt-get update

Installer la dernière version de Docker CE :

sudo apt-get install docker-ce

Démarrons maintenant notre premier conteneur Docker  (command run) :

sudo service docker start pour démarrer notre docker

sudo docker run hello -world

 

Utilisation de Docker : Gestion des conteneurs

Pour pouvoir créer et lancer un conteneur, il nous faut une image.
Vous pouvez, avec Docker, soit créer votre propre image (mais nous verrons cela plus tard dans la partie 2), soit en utiliser une existante, en la recherchant sur le site https://registry.hub.docker.com.
Pour le moment, nous allons simplement utiliser une image “nginx” et, pour la récupérer, il faut créer un compte sur le hub docker et ensuite lancer les deux commandes login et pull.

sudo docker login
sudo docker pull nginx

Cela va télécharger l’image en local, et vous pourrez ensuite lancer un conteneur.
D’ailleurs, si vous lancez un conteneur sans avoir l’image sur votre machine, elle sera téléchargée automatiquement à partir du hub Docker (donc la commande ci-dessus n’est utile que pour préparer votre système, si par exemple vous comptez utiliser le conteneur sans internet par la suite).

Pour lister les images présentes en local, il suffit de lancer la commande :

sudo docker images -a

Nous allons maintenant lancer un conteneur docker qui utilisera notre image nginx pour démarre un serveur Nginx :

sudo docker run --name myNginx -d -p 8080:80 ngnix

–name : Pour définir le nom du container.

-d : Pour détacher le conteneur du processus principal de la console. Il vous permet de continuer à utiliser la console pendant que votre conteneur tourne sur un autre processus.

-p : Pour définir l’utilisation de ports. Dans notre cas, nous lui avons demandé de transférer le trafic du port 8080 vers le port 80 du conteneur. Ainsi, en vous rendant sur l’adresse http://127.0.0.1:8080/, vous aurez la page par défaut de Nginx.

 

Vous pourriez aussi avoir besoin de « rentrer » dans votre conteneur Docker pour pouvoir y effectuer des actions.
Pour cela, il faut  utiliser la commande :

sudo docker exec -ti myNginx bash

Dans cette commande, l’argument -ti permet d’avoir un shell bash pleinement opérationnel.
Une fois que vous êtes dans votre conteneur, vous pouvez vous rendre dans le répertoire où se trouve le fichier index.html (cd /usr/share/nginx/html) ,pour modifier son contenu et voir le résultat en direct à l’adresse http://127.0.0.1:8080/

Quand vous créez des conteneurs avec l’argument -d, vous pouvez avoir besoin de savoir si les conteneurs sont toujours actifs, pour cela, il suffit de lancer la commande :

sudo docker ps -a

 Pour arrêter un conteneur faites appel à la commande :

sudo docker stop myNginx

Maintenant que votre conteneur Docker a été arrêté, vous pouvez le supprimer avec la commande :

sudo docker rm myNginx

Celle-ci va détruire le conteneur et son contenu. Cependant, vous pouvez toujours recréer votre conteneur avec la commande « docker run » vue plus haut.

Après avoir fait de nombreux tests sur votre ordinateur, vous pouvez avoir besoin de faire un peu de ménage.
Vous pouvez laisser faire Docker pour qu’il fasse lui-même le ménage en lançant la commande :

sudo docker system prune

Pour résumer, voici les points importants de l’article :

  • Récupération d’une image depuis le hub docker registry avec la commande docker pull.
  • Démarrer un conteneur avec un docker run et l’utilisation des arguments -d, -name et -p lors de son démarrage.
  • Nettoyage du système avec Docker system prune.

Dans un second article, nous verrons la création et la gestion de nos propres images en utilisant le Dockerfile !

1 réflexion sur “Docker pour les débutants (Partie 1)”

Les commentaires sont fermés.