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 🥳