Docker

Introduction à Docker

Bonjour et bienvenue sur ce post ou je vais vous expliquer ce que c’est Docker et comment l’utiliser.

Cette fameuse technologie qui a révolutionné le monde de l’IT, et qui a permis de faire des choses incroyables. Sûrement vous avez déjà entendu parler de Docker, mais vous ne savez pas ce que c’est, ou bien vous avez déjà entendu parler de Docker, et vous voulez en savoir plus. Dans tous les cas, vous êtes au bon endroit.

Qu’est-ce que Docker ?

Déjà, Docker c’est quoi, et pourquoi est-ce que c’est si populaire ?

Il faut savoir que Docker n’est pas une invention technologique, mais c’est une amélioration d’une technologie qui existait déjà, qui est les conteneurs. Les conteneurs existent depuis longtemps, mais ils n’étaient pas aussi populaires que maintenant.

Pour vous expliquer ce que c’est un conteneur, je vais vous donner un exemple simple. Vous avez sûrement déjà entendu parler des VM (Virtual Machines), et bien les conteneurs c’est un peu comme les VM, mais en beaucoup plus léger, et beaucoup plus rapide.

Dans la pratique, une VM c’est un ordinateur dans un ordinateur, et un conteneur c’est un processus dans un ordinateur.

C’est un peu plus clair ? Non ? Pas de soucis, voilà une image qui décrit ce que je veux dire :

Texte alternatif

Source : medium

Ici on voit clairement que pour avoir une VM il faut un hyperviseur, et un OS, et pour faire la Vm qu’on veut on doit egalement virtualiser le hardware, alors que pour un conteneur, il suffit d’avoir un OS, et on virtualise le processus en quelque sorte. Cela est en termes clairs veut dire que a la place de virtualiser toute une machine pour notre application, on prend juste de ce qu’on a besoin de l’hote et on l’utilise, sans consommer beaucoup de ressources.

Cela permet d’éviter de lancer une VM qui consomme beaucoup de ressources, et qui prend beaucoup de temps pour se lancer. Pour un simple serveur WEB. Alors qu’avec un conteneur, on peut lancer un serveur WEB en quelques secondes, et avec très peu de ressources consommées.

Pourquoi Utiliser Docker ?

Bon peut-être je vous ai pas convaincu avec l’histoire de la légèreté et la rapidité, mais voilà d’autres raisons pour lesquelles vous devriez utiliser Docker :

  • Isolation des Applications : Chaque application et ses dépendances sont encapsulées dans un conteneur, évitant ainsi les conflits du genre, la BDD a changé la version PHP et mon site web ne marche plus.
  • Portabilité : Les conteneurs Docker fonctionnent de manière identique sur n’importe quel environnement où Docker est installé. Plus l’excuse, Oh! ça marche sur mon poste pourtant!
  • Efficacité : Les conteneurs partagent le même noyau du système hôte, ce qui les rend légers et nécessitant moins de ressources que les machines virtuelles traditionnelles. Mais attention à bien les sécuriser !!
  • Rapidité : Les conteneurs se lancent en quelques secondes, et ils sont très rapides à déployer, et à gérer.
  • Flexibilité : Les conteneurs sont très flexibles, et ils peuvent être déployés sur n’importe quelle infrastructure, que ce soit sur votre machine, ou sur le cloud.

Aussi, et la raison la plus importante est, que Docker est très utilisé dans le monde de l’IT, et c’est un outil qui est très demandé. Donc si vous voulez faire une carrière dans l’IT, il faut absolument que vous maîtrisiez Docker.

Pourquoi Docker est-il si populaire ?

Vous allez vous dire peut-être, mais comment ça marche Docker ? Et surtout c’est quoi la différence entre une VM et un container ? Bien que je l’ai un peu, explique dans la partie précédente, je vais vous donner des détails et surtout une explication un poil plus détaillé.

Pour le faire, je vais, vous donne un exemple. Imaginons vous avez un serveur ou vous mettez plusieurs sites web dessus. Chaque site web a ses propres dépendances et versions qu’il utilise, donc un site qui marche sur php5 ne pourra pas marcher sur php7. Donc, pour éviter ce genre de problème, vous allez créer une VM pour chaque site web, et vous allez installer les dépendances nécessaires pour chaque site web.

Et cela, c’est très lourd, et très coûteux, et très lent. Et c’est là que Docker intervient. Avec Docker, vous pouvez créer un conteneur pour chaque site web, et chaque conteneur va avoir ses propres dépendances, et ses propres versions, et ils vont fonctionner de manière isolée, et sans conflits. Et tout ça, dans le même serveur, et sans consommer beaucoup de ressources.

Sans oublier le point clé, de Docker et de la containerisation, c’est la portabilité. C’est la pierre angulaire de Docker, et c’est ce qui a fait son succès. Vous pouvez déployer votre application sur n’importe quelle infrastructure, et elle va fonctionner de la même manière.

Donc imaginons vous achetez un nouveau serveur, et vous voulez déployer votre application, et bien vous n’avez qu’à copier le conteneur, et le lancer sur le nouveau serveur, et votre application va fonctionner de la même manière. Ce n’est pas beau ça ?

Installation de Docker

Windows et MacOS

Une fois que je vous ai donné envie d’utiliser Docker, je vais vous montrer comment l’installer.

Pour Windows et MacOS, il suffit de télécharger Docker Desktop à partir du site officiel de Docker et suivez les instructions d’installation.

Une fois l’installation terminée, lancez Docker Desktop.

Remarque pour Windows

Docker se base sur le noyau Linux pour bien marcher. Du coup sur un Windows, il va installer en même temps, WSL (Windows Subsystem for Linux), qui est un sous-système Linux pour Windows. Cela veut dire que vous allez avoir un noyau Linux sur votre Windows, et vous allez pouvoir faire n’importe quoi que vous faites sur Linux, sur votre Windows.

Donc si vous avez déjà WSL, vous pouvez installer Docker Desktop, et vous allez avoir Docker sur votre Windows.

Mais si vous n’avez pas WSL, vous pouvez l’installer en suivant ce lien.

Linux

Pour Linux, il suffit de faire la commande suivante :

wget -qO- https://get.docker.com/ | sh

Bien entendu, il faut que vous ayez les droits pour pouvoir installer des packages sur votre machine.

Conclusion

Voilà, j’espère que je vous ai donné envie d’utiliser Docker, et que vous avez compris ce ce que c’est, et pourquoi est-ce que c’est si populaire.

Dans le prochain post, je vais vous montrer comment utiliser Docker, et comment déployer une application d’exemple sur Docker.

Je vous remercie d’avoir lu ce post, et j’espère que vous avez appris quelque chose. Si vous avez des questions, n’hésitez pas à me contacter, je serais ravi de vous aider.