JPO : Webinar d'information sur nos formations → RDV mardi à 17h30.

Tutoriel Docker : comment créer son premier conteneur ?

Docker est un outil permettant de créer et d’isoler des environnements appelés conteneurs. Le but est d’isoler une application sur un environnement particulier pour pouvoir l’exécuter sur n’importe quel OS (Windows, linux, mac etc) sans qu’il y ait des problèmes d’adaptabilité.

Vous vous demandez quelle est la différence avec une machine virtuelle ? Une VM va contenir un système d’exploitation dans son intégralité c’est-à-dire les pilotes, les fichiers binaires, les bibliothèques alors que les conteneurs Docker ne possèdent que le strict nécessaire pour l’exécution de l’application. Il fait appel à l’OS de sa machine hôte pour réaliser ses appels système et exécuter ses applications, d’où son extrême légèreté.

Docker est configurable pour Linux car sa technologie de base repose sur une fonctionnalité appelée LXC (Linux Kernel). Historiquement, Docker a été distribué sous format open source en 2013 et a été intégré seulement en 2016 sous Windows.

Dans cet article, dans un premier temps, nous allons vous expliquer comment installer Docker sur Windows et sur Linux. Ensuite nous allons vous présenter les images Docker ainsi que le Dockerfile et dans un dernier temps, nous allons vous donner plusieurs une liste non exhaustive de commandes Docker.

Installation

Linux

Il y a 3 moyens d’installer Docker sous Linux :

  1. Installation via le package officiel
  2. Installation via Docker Engine
  3. Installation via le repo
1. Installation du grâce au package

Pour installer Docker de manière très simple, il suffit d’installer le paquet docker.io

Il serait fortement utile d’installer en plus docker-compose

2. Installation via Docker Engine
Exécutez simplement la commande suivante :

Vérifier que tout s’est bien installer en lançant l’image « hello-world »

3. Installation via le Repo

Mettre à jour APT

Ajouter la clé GPG du site de Docker puis pointer vers le dépôt de la version « stable » de Docker CE :

Windows

Pour installer docker sous windows, il faut passer par l’application Docker Desktop.

Pour cela, il faut aller sur le site suivant :

https://docs.docker.com/desktop/windows/install/

Et cliquer sur la case bleu suivante :

Ensuite, allez dans votre explorateur de fichier, téléchargements puis double-cliquer sur le lien fraichement téléchargé.

La fenêtre suivante s’ouvrira :

Cliquez sur « Ok » et veillez à ce que les 2 cases soient cochées et l’installation se lancera

Attention : à la fin de l’installation, Windows devra redémarrer, veillez donc à bien enregistrer votre travail.

Accepter les termes et la fenêtre docker apparaît.

Il est fort probable que la fenêtre suivante s’ouvre :

Ne fermez pas cette fenêtre !

Cliquez sur le lien donné, allez à l’étape 4 et téléchargez le package de mise à jour du noyau linux WSL2 pour machines x64.

Vous pouvez retourner sur la fenêtre précédente puis cliquer sur restart.

L’application Docker se lance et si c’est votre première utilisation, vous pouvez suivre le tutoriel pour découvrir Docker Desktop.

Une fois le logiciel installé sur votre ordinateur, nous allons commencer à manipuler Docker en important une image et en créant notre premier conteneur Docker.

Notre tutoriel a été réalisé dans un environnement Linux car sous Windows, tout se fait grâce à l’interface Docker Desktop.

Docker Image

Dans un premier temps, nous avons besoin d’une image Docker pour notre conteneur. Une image est essentielle pour que notre conteneur prenne vie. Si nous devons faire un parallèle, le conteneur représente un ordinateur d’un point de vue matériel et l’image représente toutes les ressources numériques présents dessus : OS, fichiers binaires, logiciels. De la même manière qu’un ordinateur est inutile si rien n’est installé dessus, les logiciels ne servent à rien s’il ne sont pas installés quelque part. Nous retrouvons l’architecture d’un contenant et d’un contenu.

Nous allons donc importer une image Linux disponible sur le Docker Hub. Ouvrez un terminal et exécutez la commande suivante :

Bien joué ! Vous avez téléchargé une image d’Ubuntu depuis le docker hub qui vous servira pour votre futur conteneur.

Dans notre commande, nous voyons un « :latest » qui suit le nom de l’image. Ceci s’appelle un tag et représente la dernière image mise à jour d’Ubuntu sur le Docker Hub.

Exécutez la commande suivante pour afficher les images disponibles sur votre machine :

Lançons maintenant un conteneur avec l’image Ubuntu que nous venons de télécharger.

Rien ne se passe et cela est tout à fait normal. Un conteneur a une durée de vie limitée car lorsqu’on lance un conteneur, une commande est exécutée et lorsqu’elle est terminée, le conteneur s’arrête, mais reste toujours disponible si l’on veut le redémarrer plus tard.

Pour pouvoir interagir et ainsi naviguer à l’intérieur du conteneur, il faut lancer la commande suivante :

Après avoir importé et lancé un conteneur « à la main », voyons maintenant comment, à partir d’un fichier, nous pouvons créer un conteneur personnalisé.

Dockerfile

Un dockerfile est un fichier qui nous permet de construire une image docker sur mesure. Il contient aussi un ensemble de commandes à lancer dans le conteneur, des applications à installer, des variables d’environnements à initialiser…

Dans un fichier python basique, écrivons juste une fonction simple :

Ensuite créons notre Dockerfile qui nous permettra de lancer notre conteneur :

Explicitons un peu ce que contient notre Dockerfile :

  • Le mot clé FROM nous permet de récupérer une image présente sur le Docker Hub.
  • RUN permet d’ajouter une couche intermédiaire dans la construction de notre image. En effet, nous voulons que notre image ait une base Debian (distribution de Linux) et que Python soit installé.
  • ADD nous permet d’ajouter un fichier en local dans notre conteneur, il faut faire attention à bien spécifier le chemin.

Et enfin dans un terminal et dans le dossier contenant le Dockerfile, il faut lancer la commande suivante :

Pour aller plus loin…

Docker possède beaucoup de fonctionnalités que nous n’avons pas vu dans cet article tels que les réseaux, les volumes, le docker-compose qui nous permet de lancer un ensemble de conteneurs en même temps.

Cette technologie est devenue un must have pour le Data Engineer ou le ML Engineer en entreprise et une formation complète est disponible dans notre cursus Data Engineer ou dans notre cursus expert Approfondissement en Engineering, n’hésitez pas à prendre rendez-vous avec un de nos conseillers pour plus de détails.

Facebook
Twitter
LinkedIn

Tag de l'article :

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone

S'inscrire à la JPO :

Vous souhaitez recevoir notre newsletter data 💌 hebdomadaire ?