Ubuntu sur Windows 10: Docker vs WSL

11

Je comprends qu'il est actuellement possible d'exécuter Ubuntu sur Windows 10 de deux manières différentes:

  1. Utilisation du sous-système Windows pour Linux (WSL).
  2. Installer docker pour Windows 10 et utiliser un conteneur avec Ubuntu.

Cependant, je n'ai pas pu trouver d'explication facile à comprendre quelles sont les différences entre elles (parler des applications), ainsi que les avantages et les inconvénients.

J'ai trouvé un article sur l'utilisation de Docker sur WSL: Ubuntu via (Windows Linux Subsystem) et Docker . Mais je parle de l'utiliser directement sur Windows 10. J'apprécierai donc toute information sur ces deux.

alvgom
la source
Je ne suis expert dans aucun d'entre eux pour écrire une réponse, mais mon vote va à Docker. La raison en est que Docker implique la virtualisation, donc les choses devraient simplement fonctionner. WSL en revanche est plein de bugs. Cela fonctionne pour les repères, le plaisir et surtout le développement; mais si vous êtes sur le point de déployer quelque chose de sérieux, ce n'est pas votre choix, du moins pas encore.
Hi-Angel

Réponses:

14

Mis à jour 2020/02/18 pour refléter les changements introduits dans WSL2

Salut! Microsoft PM travaille sur WSL et ligne de commande ici.

WSL vous permet d'exécuter des binaires Linux ELF-64 natifs et non modifiés directement sur Windows, et vous permet d'exécuter vos outils Linux préférés sur votre système d'exploitation "hôte" Windows.

WSL1 a adopté une approche consistant à ajouter une couche compatible avec les appels système Linux en haut du noyau NT, permettant aux binaires Linux de s'exécuter au-dessus de NT, partageant le même système de fichiers, réseau, liste de processus, etc. sous-jacent que le système d'exploitation hôte.

D'autre part, WSL2, qui sortira bientôt, exécute les binaires des distributions dans des conteneurs Linux, au sommet d'un véritable noyau Linux, à l'intérieur d'une machine virtuelle légère qui alloue uniquement la RAM nécessaire aux applications qu'il exécute, puis libère la RAM libérée dans le OS hôte. Cela offre une compatibilité à 100% avec Linux, et permet à vos outils Linux de fonctionner avec des performances quasi natives, et consomme le minimum de ressources nécessaires de la part de l'hôte, garantissant ainsi que votre machine fonctionne rapidement et en douceur.

Avant WSL2, il était possible d'exécuter le client Docker dans WSL1, en l'utilisant pour piloter Docker pour Windows fonctionnant sur Hyper-V sur l'hôte local ou pour gérer un serveur Docker distant. Mais on ne peut pas exécuter Docker Engine sur WSL1 pour de nombreuses raisons techniques.

Cependant, vous pouvez faire la même chose dans Docker sur WSL2, mais vous pouvez également exécuter le moteur Docker lui-même sur WSL si vous préférez. Il s'agit du chemin préféré et futur de Docker pour exécuter Docker sur le bureau Windows .

Pour en savoir plus sur WSL, consultez les vidéos et les documents ici: https://aka.ms/learnwsl

Rich Turner
la source
Je pense que cette réponse se réfère à WSL, WSL 2 exécute un noyau linux personnalisé, qui s'interface avec Windows. Je crois que le noyau Linux personnalisé de Windows fonctionne dans une machine virtuelle.
Jordan Stewart
1
Ça faisait. Nous venons de publier une mise à jour pour mieux refléter notre réalité WSL2 :)
Rich Turner
2

C'est exact. Une chose que vous omettez de mentionner est que WSL est actuellement plutôt lent dans io même avec un ssd rapide / beaucoup de ram / 8-core xeon cpu. C'est toujours un problème au 01/2019. Je viens de faire un rayon @ DESKTOP-O0MT13B: / mnt / c / Users / rayjh $ dd if = / dev / zero of = test bs = 64k count = 16k conv = fdatasync sur mon poste de travail avec un SSD Samsung et n'a obtenu que 97,6 Mo / s.

En exécutant ubuntu LTS en métal nu, cette boîte obtiendra PLUSIEURS fois. Peu importe les problèmes sans fin lorsque vous essayez de combiner WSL avec VSCODE.

J'essuie Windows 10 d'ici et j'installe Ubuntu 18.04LTS.

rayj
la source
Vous n'avez pas besoin d'être toxique, surtout à la fin. Veuillez plutôt nous dire ce que vous avez fait pour rechercher la cause des problèmes que vous rencontrez et s'il s'agit de problèmes connus ou non et si quelqu'un travaille à les résoudre ou non. Je suis sûr qu'ils le sont cependant. Et vous n'avez pas besoin de désinstaller Windows, il vous suffit d'installer le gestionnaire hyper-v et d'installer rapidement Ubuntu et vous êtes configuré pour un environnement de développement Linux si vous voulez travailler à l'intérieur d'un bureau Linux virtuel. Sinon, continuez à utiliser WSL et attendez que vos problèmes soient résolus. 97 Mo / s n'est pas si lent.
Paul-Sebastian Manole
AFAIK les problèmes de vitesse sont liés au sous-système d'accès aux fichiers Windows et une solution de contournement est en cours.
Paul-Sebastian Manole
WSL semble toujours lent. Mais il a un temps de démarrage très rapide et permet l'utilisation des outils linux cli courants. La cartographie du système de fichiers Linux et Windows semble compliquer les choses.
Jordan Stewart
Il est devenu sensiblement plus rapide. Cependant, j'ai essayé d'utiliser miniconda et d'installer des packages et c'était encore un peu lent.
rayj