Docker Desktop : virtualisation nécessaire ou non ?

Docker

Docker est un outil incontournable pour le développement et le déploiement d’applications modernes. Cependant, une idée reçue persiste : la virtualisation matérielle serait indispensable pour utiliser Docker Desktop sous Windows. Dans cet article, je clarifie ce point et j’explique dans quels cas la virtualisation est nécessaire ou facultative.

Qu’est-ce que la virtualisation ?

La virtualisation permet à votre ordinateur d’exécuter plusieurs systèmes d’exploitation ou applications isolées sur une seule machine physique. Docker utilise cette fonctionnalité pour exécuter des conteneurs dans un environnement isolé.

Faut-il activer la virtualisation matérielle pour Docker Desktop ?

1. Scénario courant : Docker Desktop avec WSL 2

  • Docker Desktop utilise Windows Subsystem for Linux 2 (WSL 2) comme moteur par défaut. WSL 2 repose sur une couche de virtualisation légère, mais elle ne nécessite pas obligatoirement la virtualisation matérielle (VT-x ou AMD-V).
  • Tant que WSL 2 est activé sur votre système, Docker Desktop fonctionnera sans problème, même si la virtualisation matérielle est désactivée dans le BIOS.

2. Scénario alternatif : Docker Desktop avec Hyper-V

  • Dans certaines configurations, Docker peut utiliser Hyper-V comme moteur d’exécution. Hyper-V, étant un hyperviseur de type 1, il nécessite obligatoirement la virtualisation matérielle activée dans le BIOS.
  • Cela s’applique principalement aux anciennes versions de Windows 10 qui ne supportaient pas encore WSL 2.

3. Docker sous Linux

  • Sur Linux, Docker fonctionne de manière native grâce aux fonctionnalités du noyau (cgroups, namespaces). Ici, la virtualisation matérielle n’a aucun rôle.

L’article en question mélange certains concepts sur l’utilisation de Docker avec et sans virtualisation matérielle. Voici une version corrigée et clarifiée :


Les cas où la virtualisation matérielle est recommandée

Même si elle n’est pas obligatoire pour Docker Desktop avec WSL 2, activer la virtualisation matérielle dans le BIOS peut être utile dans ces situations :

  • Utilisation de machines virtuelles (ex. : VirtualBox, VMware, Hyper-V).
  • Tests nécessitant plusieurs environnements virtualisés simultanément.
  • Besoin d’optimiser les performances pour des outils qui utilisent Hyper-V.

Comment vérifier si Docker utilise WSL 2 ?

  • Ouvrez un terminal sous Windows.
  • Exécutez la commande suivante :
wsl --list --verbose
  • Assurez-vous que votre distribution WSL est configurée en version 2.

Dans Docker Desktop, accédez aux Paramètres > General, et vérifiez que l’option « Use the WSL 2 based engine » est activée.

Les systèmes compatibles avec Docker Desktop

  • Windows 10/11 :
    • Versions supportées : Home, Pro, Enterprise, Education.
    • Seules les versions 64 bits sont compatibles.
    • Windows 10 Home nécessite WSL 2 car Hyper-V n’est pas disponible.
  • macOS : Docker Desktop fonctionne de manière native.
  • Linux : Docker fonctionne directement sur le noyau Linux.

Virtualisation obligatoire ou non ?

La virtualisation matérielle est souvent recommandée pour maximiser les performances et la compatibilité, mais elle n’est pas indispensable pour Docker Desktop si vous utilisez WSL 2. Cela rend Docker accessible même sur des configurations où l’activation de la virtualisation matérielle pose problème.

En résumé : Docker Desktop est flexible et peut fonctionner sans virtualisation matérielle complète grâce à l’utilisation de WSL 2.

Comment vérifier que la virtualisation est activée sur sa machine ?

Vérification par le Gestionnaire des Tâches

  1. Ouvrir le Gestionnaire des tâches :
    • Faites un clic droit sur la barre des tâches et sélectionnez Gestionnaire des tâches.
    • Accédez à l’onglet Performance.
    • En bas à droite, vérifiez si la Virtualisation est activée ou désactivée.
  2. Si la virtualisation est désactivée, passez à l’étape suivante.
virtualisation

Vérification par le Terminal

Ouvrez une invite de commandes (CMD) en mode administrateur.

Tapez

systeminfo
systeminfo

Cherchez une ligne comme Sécurité basée sur la virtualisation.

Précaution avec les logiciels tiers

Des logiciels tels que Speccy, CPU-Z ou SecurAble peuvent ne pas détecter la virtualisation et vous induire en erreur.

Si vous utilisez Hyper-V ou WSL 2, ces technologies monopolisent la virtualisation matérielle et la rendent « invisible » pour certains outils tiers.

Ces logiciels tiers peuvent également mal détecter certaines configurations avec des processeurs récents ou des paramètres spécifiques du BIOS.

Les termes à connaitre

TermeExplication
WSL-2WSL 2 est une fonctionnalité de Windows qui permet d’exécuter un noyau Linux directement sous Windows, sans nécessiter une machine virtuelle complète.
Fonctionnement : WSL 2 repose sur une virtualisation légère via un noyau Linux embarqué, géré en arrière-plan par Hyper-V.
Avantages : Performances proches de Linux natif, compatibilité élevée avec les outils Linux, et une intégration simplifiée pour Docker Desktop.
Hyper-VHyper-V est un hyperviseur de type 1 intégré à Windows. Il permet de créer et de gérer des machines virtuelles directement sur le matériel sans intermédiaire.
Configuration : Hyper-V nécessite la virtualisation activée au niveau matériel et est disponible sur les éditions Pro, Enterprise et Education de Windows.
Utilisation: Docker Desktop sous Windows s’appuie sur Hyper-V (ou WSL 2 qui utilise Hyper-V) pour exécuter des conteneurs.
Hyperviseur Un hyperviseur est un logiciel ou un matériel qui permet d’exécuter plusieurs systèmes d’exploitation sur une même machine physique en isolant les ressources.
Rôle : L’hyperviseur gère la répartition des ressources (CPU, mémoire, etc.) entre les machines virtuelles.
Types :
Hyperviseur de type 1 : Fonctionne directement sur le matériel (ex. : Hyper-V, VMware ESXi).
Hyperviseur de type 2 : Fonctionne au-dessus d’un système d’exploitation hôte (ex. : VirtualBox, VMware Workstation).
BIOS (Basic Input/Output System)Le BIOS est le logiciel intégré dans la carte mère d’un ordinateur, qui initialise et configure les composants matériels au démarrage.
Lien avec la virtualisation : Dans les anciennes machines, l’option d’activation de la virtualisation matérielle (Intel VT-x ou AMD-V) se configure dans le BIOS.
Fonction : Assure le démarrage du système en chargeant le chargeur d’amorçage d’un système d’exploitation.
UEFI (Unified Extensible Firmware Interface)UEFI est une version moderne et améliorée du BIOS. Lien avec la virtualisation : Tout comme le BIOS, l’UEFI permet d’activer ou de désactiver la virtualisation matérielle, mais via une interface plus avancée.
Différences avec le BIOS :
Interface plus conviviale, support de souris.
Compatible avec des disques de plus grande capacité (> 2 To).
Sécurité accrue grâce à des fonctionnalités comme Secure Boot.
Virtualisation : La virtualisation est la technologie qui permet d’exécuter plusieurs systèmes d’exploitation ou environnements logiciels sur une seule machine physique.
Exemples d’utilisation : Docker pour les conteneurs, Hyper-V pour les VM.
Matérielle : permet de créer des machines virtuelles qui partagent les ressources physiques.
Logicielle : les conteneurs Docker en sont un exemple, où les environnements isolés partagent le même noyau.
Avantages : réduction des coûts matériels, isolation des environnements, tests simplifiés.

En conclusion, la virtualisation est fortement recommandée pour utiliser Docker de manière optimale. Pour vérifier si elle est activée, utilisez la commande systeminfo ou consultez directement le Gestionnaire des tâches sous Windows. Évitez de vous fier aveuglément à des logiciels tiers, qui peuvent parfois fournir des informations erronées ou incomplètes concernant la disponibilité de la virtualisation sur votre machine. La virtualisation est facultative si vous utilisez Docker Desktop avec WSL 2 ou Docker directement sur un système Linux, car ces environnements n’exigent pas de virtualisation matérielle activée.

Catégories : Développement
Retour en haut