Docker Desktop pour débuter avec Docker

J’ai testé pour vous Docker Desktop for Windows, la façon la plus simple et la plus rapide de débuter avec Docker sous Windows ou Mac (c’est Docker qui le dit 😉)

Docker est un logiciel libre qui vous permet de simplifier la création de vos environnements d’exécution. En tant que développeur/euse, vous avez besoin de nombreuses dépendances (Un serveur web, un serveur de base de données, un langage de programmation, des utilitaires, des extensions, une configuration réseau spécifique, …). Avec Docker, vous n’avez plus besoin d’installer cet environnement sur votre machine. Vous pouvez créer un ou plusieurs conteneurs qui contiendra les services (ou les dépendances) nécessaire à votre projet.

Docker est basé sur la technologie LXC (Linux Containers). Il a donc un fonctionnement natif sous Linux mais un fonctionnement émulé sous Windows. Durant longtemps, le développement via Docker sous Windows (ou Mac) pouvait souffrir de grosses lenteurs.

Aujourd’hui, les performances se sont nettement améliorées grâce à la sortie de WSL2. C’est donc le bon moment de faire cette petite découverte de Docker Desktop for Windows qui est un outil simple pour découvrir Docker si vous êtes débutant. 😇

C’est quoi Docker Desktop ?

Docker Desktop est tout simplement un installeur Windows qui contient plusieurs outils et qui va permettre d’utiliser Docker en ligne de commande mais également avec une interface graphique pour la gestion des images et des conteneurs. Cette interface graphique n’est pas nécessaire mais je trouve qu’elle apporte un vrai plus pour la compréhension si vous êtes débutant.

Docker Desktop for Windows va automatiquement vous installer les éléments suivants :

  • Docker Engine
    En gros, c’est Docker (le daemon) et l’API Docker (l’interface de contrôle)
  • Docker CLI client
    C’est l’interface en ligne de commande qui permet de contrôler docker avec votre terminal
  • Docker Compose
    Permet de créer et de démarrer plusieurs services depuis un fichier de configuration unique, pratique pour regrouper toutes les dépendances de votre projet
  • Notary
    Permet la signature de contenu et la gestion des éditeurs de confiance
  • Kubernetes
    Permet de gérer du docker sur plusieurs hôtes
  • Credential Helper
    Outils pour protéger les identifiants docker
  • Docker Desktop
    Une interface graphique de gestion de docker

Finalement, il y a pas mal de choses (et ça va continuer de grossir) mais vous verrez que ça reste très simple.

Installer Docker Desktop sous Windows

Commencez par télécharger Docker for Windows : https://docs.docker.com/docker-for-windows/install/

Le temps que ça se télécharge, suivez notre tutoriel pour installer WSL2 afin de pouvoir l’utiliser pour faire tourner Docker.

SI vous avez déjà WSL installé sous Windows mais que vous êtes en version 1, basculez votre image en version 2 pour bénéficier des performances augmentées avec Docker

wsl.exe --set-version Ubuntu 2

Une fois WSL2 installé et configuré, vous pouvez passer à l’installer de Docker Desktop for Windows. Je ne vous fais pas de capture, il suffit de suivre l’installation par défaut. 😉

Dès que l’installation est terminée, vous pouvez parcourir rapidement la configuration. Par exemple, vous pouvez :

  • Désactiver Send usage statistics
  • Désactiver Start Docker Desktop when you log in
  • Désactiver Show weekly tips

Gérez vos images Docker

Cette interface graphique est vraiment très simple. On retrouve les Images connues par Docker. Cette interface offre la possibilité de :

  • RUN : Charger l’image dans un conteneur, tout simplement pour quelle soit active
  • Remove : Permet de supprimer localement une image pour libérer de l’espace
  • Pull : Permet de mettre à jour une image depuis l’origine
  • Push to hub : Permet de publier votre image sur votre compte https://hub.docker.com/
  • Inspect : Permet de comprendre votre image (ce qu’elle contient, consommation, logs, …)

La commande Inspect va être pratique si vous avez besoin de savoir ce que contient votre image, comment elle a été configurée et à partir de quoi. Vous pouvez également voir le poids résultant de chaque commande exécutée. 💡

Contrôlez vos containers Docker

La seconde partie vous montre les containers créés à partir des images et vous permet de les contrôler :

  • CLI : Accéder à la ligne de commande de votre conteneur
  • Play : Démarrer le conteneur s’il est arrêté
  • Stop : Arrêter le conteneur s’il est démarré
  • Restart : Relance les services dans leur état initial
  • Browser : Permet d’ouvrir votre navigateur sur le port HTTP du conteneur
  • Delete : Supprimer le conteneur (ne supprime pas l’image)

Pour chaque container démarré, vous pouvez avoir accès directement aux logs :

Vous pouvez aussi visualiser rapidement la consommation du conteneur docker (mémoire, réseau, disque, CPU) :

Enfin, vous pouvez inspecter les services actifs, les versions logiciel ou les ports d’écoute. Pratique ! 👍

Comment avoir accès à Kubernetes ?

Kubernetes n’est pas activé par défaut. Si vous avez besoin de démarrer kubernetes sur votre poste (single host) afin de tester vos déploiements Kubernetes, vous devez aller dans les paramètres afin de enable Kubernetes.

Une nouvelle zone apparait en bas à gauche pour montrer l’état du service Kubernetes à côté du service Docker (le premier démarrage peut être très long).

Le but de cet article n’est pas de présenter Kubernetes. Pour en savoir plus, voici la documentation pour Kubernetes sous Docker Desktop.

Débuter avec Docker

Pour commencer, je vous recommande de lancer la documentation en démarrant le conteneur docker/getting-started depuis l’interface ou directement en ligne de commande depuis votre terminal

docker run -d -p 80:80 docker/getting-started

Cliquez sur Open in browser ou lancez votre navigateur sur http://localhost/.

Suivez ensuite le tutoriel proposer sur http://localhost/tutorial/our-application/ pour bien comprendre les bases. Vous verrez en quelques minutes comment :

  • Créer un Dockerfile
  • Créer un nouvelle image à partir du dockerfile
    docker build -t getting-started .
    -t <human-readable-alias>
    . (Chemin vers le Dockerfile)
  • Lancer l’image contenant l’application
    docker run -dp 3000:3000 getting-started
  • Accéder à l’application
    http://localhost:3000/

On peut voir dans Docker Desktop que :

  • L’image a été créée
  • Le conteneur est actif
  • On peut inspecter le conteneur, l’ouvrir en CLI, le stopper, …

On voit ensuite comment :

  • Lister les conteneurs docker ps
  • Stopper le conteneur docker stop <the-container-id>
  • Supprimer le conteneur docker rm <the-container-id>

La suite du tutoriel vous montre comment publier une image (http://localhost/tutorial/sharing-our-app/).

Vous verrez enfin comment tester des vulnérabilités connues docker scan getting-started

Mon avis sur Docker Desktop

Personnellement, je trouve que l’outil est très bien fait et pratique pour bien comprendre le fonctionnement de Docker lorsqu’on débute. Je pense que l’outils va rapidement être adopté par les étudiants qui doivent assimiler rapidement de nouveaux concepts durant leur formation ainsi que par les développeurs habitués aux interfaces graphiques (👋 les développeurs/euses sous Windows).

J’ai bien l’impression que Docker Desktop fait partie de la stratégie de l’entreprise Docker qui vise à rendre accessible la technologie pour le plus grand nombre (pour vendre des outils et service à de nouvelles entreprises).

Hâte de voir les évolutions pour découvrir les fonctionnalités à venir comme les Dev Environments 🥳

Ressources récentes