Débuter avec Docker

· 547 mots · Temps de lecture 3min

Docker et l'idée de la conteneurisation existent depuis un certain temps mais ils semblent gagner de plus en plus en popularité dans le monde du développement logiciel. Docker est vraiment facile à apprendre et vous pouvez commencer à l'utiliser en moins de … 8 minutes! Nous le ferons dans quelques minutes mais nous allons commencer par répondre à quelques questions récurrentes sur ces technologies.

Qu’est-ce que Docker et pourquoi devrais-je l’utiliser? 🔗

Docker est un outil pour exécuter des applications dans un environnement isolé appelé conteneur. Cela facilite l'étape du déploiement même dans des environnements hétérogènes.

Quelle est la différence entre un conteneur et une machine virtuelle? 🔗

Lorsque vous exécutez une machine virtuelle, chaque machine virtuelle obtient son propre système d'exploitation, y compris le noyau (kernel). Les conteneurs s'exécutent nativement sous Linux et partagent le noyau de la machine hôte avec d'autres conteneurs. Tout au dessus de cela est séparé.

Avec un conteneur vous avez les mêmes avantages qu'une machine virtuelle (un environnement isolé) mais d'une façon plus légère. Un conteneur démarre en quelques secondes alors qu'une machine virtuelle démarre généralement en quelques minutes.

À quoi sert une image? 🔗

Un conteneur est une instance en cours d'exécution d'une image. Vous pouvez considérer l'image comme le plan ou le modèle pour exécuter un conteneur.

Tout le nécessaire pour exécuter votre application - le code, les librairies, les variables et les fichiers de configuration - sont packagés pour exécuter un fichier nommé Dockerfile.

Construire le Dockerfile (docker build) crée l'image. Exécuter cette image (docker run) démarre votre conteneur.

Démarrer avec Docker (pour de vrai) 🔗

Nous allons commencer avec l'exemple le plus simple possible, exécuter un script Python au sein d’un conteneur.

Avant de commencer, nous devons télécharger l'application Docker adaptée à votre système d'exploitation ici.

Une fois que l'application est téléchargée et installée, vous pouvez créer une dossier de démo, votre script et un Dockerfile.

# créer un dossier nommé demo et aller dans ce dossier
mkdir demo && cd demo/

# créer un fichier script et écrire Hello, World dans ce fichier
touch app.py && echo "print('Hello, World')" > app.py

# créer le Dockerfile
touch Dockerfile

L'une des meilleures choses à propos de Docker est que vous pouvez créer votre image Docker au-dessus d'une image existante. Des dizaines d'images sont disponibles gratuitement sur https://hub.docker.com/. Idéalement, vous sélectionnerez une image marquée comme “officielle”, elles sont généralement bien maintenues et à jour.

Nous allons utiliser l’image Python officielle pour cette exemple. Vous pouvez trouver les instructions sur comment définir le fichier Dockerfile correspondant au bas de la page.

Ouvrons le Dockerfile dans un éditeur de texte et écrivons le texte suivant

# utiliser l'image Python taggée 3.7
FROM python:3.7

# définir /app comme le dossier de travail dans le conteneur
WORKDIR /app

# copier le contenu du dossier actuel dans le conteneur sous le dossier /app
ADD . /app

# exécuter app.py lorsque le conteneur démarre
CMD ["python", "app.py"]

Assurez-vous que votre application Docker est active dans votre barre de navigation et tapez les commandes suivantes

# construire l'image et la tagger demo
docker build -t demo .

# démarrer l'image taggée demo
docker run demo

et… succès! Hello, World s’affiche dans votre terminal! Facile, non? Nous allons essayer quelques exemples un peu plus avanceés dans les prochains posts! À bientôt!