Docker

A la découverte de Docker

Présentation

Docker… par où commencer… Déjà il faut savoir que je ne suis pas un expert Docker, loin de là ! J’arrive un peu à m’éclater avec et à faire deux ou trois trucs sexy, mais ça s’arrête là.

Pourquoi faire des articles alors ? Et bien justement, pour découvrir et décortiquer cette technologie et voir comment je peux l’intégrer dans mon métier de développeur web. Et aussi pour partager avec toi mes expériences.

Docker c'est quoi ?

Docker est un logiciel qui permet de faire de la conteneurisation (et ouais ça claque hein) ! C’est une technologie qui permet d’utiliser les conteneurs linux (LXC) et de faire de la virtualisation.

Conteneur ?

Docker utilise des conteneurs et contrairement à tout le jargon informatique qui s’articule autour de lui, ce qu’il fait est relativement simple à comprendre. Il suffit de faire l’analogie avec de vrais conteneurs que l’on peut trouver dans les ports et qui sont déplacés par bateau ou par camion. L’idée, c’est de disposer un peu ce que l’on veut dans le conteneur et que lorsque qu’il est déplacé à l’endroit où on le souhaite, de le retrouver exactement dans le même état dans lequel on l’avait laissé.

Ce que fait Docker au travers des conteneurs, c’est exactement la même chose. Il garantit que ce que tu mets dans le conteneur et qui tourne en local, tournera aussi de la même façon sur n’importe quel hébergeur.

A quoi ça sert ?

Le mieux c’est que je te donne quelques exemples. Avec Docker, tu peux packager une application NodeJS, lancer un site WordPress, faire tourner un programme sur une distribution de Linux spécifique, faire du Load Balancing, ouvrir une base de données ou bien utiliser MongoDB car tu te fais chier un dimanche, bref… Avec Docker, tu peux vraiment faire beaucoup de choses.

Image

Mais Docker est synonyme aussi de facilité, notamment grâce à l’utilisation d’images.

Une image c’est comme un truc tout fait. Il y a des images de système d’exploitation comme Debian, Ubuntu, CentOS. Des images telles qu’Apache, Nginx, ou bien encore WordPress. Elles sont modulaires et tu peux les utiliser comme tu veux ou bien même encore construire tes propres images à partir d’images existantes.

Une image c’est un peu la recette d’un conteneur.

Bien pour les développeurs ?

Répondre à cette question est facile, je dirais que oui. Mais la vraie question est de savoir si Docker peut nous faire gagner du temps ? C’est sûr que pour un devops la question est vite tranchée, mais moi je connais des développeurs qui n’ont jamais touché à Apache de leurs vies et qui ne déploient qu’avec FileZilla mais qui sont hyper productifs et qui sortent des dizaines de sites par an et qui vont te répondre que Docker ne va pas les aider à améliorer leur productivité.

Est-ce que Docker facilite la création de projet, le déploiement, la sécurité ou la maintenance ? C’est typiquement le genre de question que je me pose et à laquelle je vais tenter d’apporter une réponse !

Mon approche

Docker est quand même assez verbeux et très théorique, il y a beaucoup de choses à savoir pour bien maitriser le truc, notamment au niveau du fonctionnement d’un système d’exploitation. Je me suis acheté un livre écrit par des pointures et vous savez seulement lancer un conteneur à partir de la page 98… C’est vous dire.

Comment je vois la chose ? Moi, ce que j’aimerais bien faire, c’est un peu l’inverse, c’est-à-dire avoir une approche plus orientée pratique et ne pas te souler avec des tonnes et des tonnes de lignes à lire (même si tu vas devoir y passer pour bien comprendre tout le schmilblick).

Mon objectif sera vraiment de te faire découvrir Docker avec un minimum de théorie et avec un maximum de pratique.

22/12/2018

Yann Vangampelaere - nouslesdevs -

Sinon jete un coup d’oeil aux autres catégories

Ma boîte aux lettres

Tu veux me demander quelque chose ?