Ubuntu unter Windows 10: Docker vs WSL

11

Ich verstehe, dass es derzeit möglich ist, Ubuntu unter Windows 10 auf zwei verschiedene Arten auszuführen:

  1. Verwenden des Windows-Subsystems für Linux (WSL).
  2. Installieren Sie Docker für Windows 10 und verwenden Sie einen Container mit Ubuntu.

Ich konnte jedoch keine leicht verständliche Erklärung für die Unterschiede zwischen ihnen (in Bezug auf Anwendungen) sowie für Vor- und Nachteile finden.

Ich habe einen Beitrag über die Verwendung von Docker unter WSL gefunden: Ubuntu via (Windows Linux Subsystem) und Docker . Aber ich spreche davon, es direkt unter Windows 10 zu verwenden. Daher werde ich mich über alle Informationen zu diesen beiden freuen.

alvgom
quelle
Ich bin kein Experte in einem von ihnen, um eine Antwort zu schreiben, aber meine Stimme geht an Docker. Der Grund dafür ist, dass Docker Virtualisierung impliziert, sodass die Dinge einfach funktionieren sollten. Die WSL hingegen ist voller Fehler. Es funktioniert für Benchmarks, Spaß und vor allem für die Entwicklung. Wenn Sie jedoch etwas Ernstes bereitstellen möchten, ist dies nicht Ihre Wahl, zumindest noch nicht.
Hi-Angel

Antworten:

14

Aktualisiert am 18.02.2020, um den in WSL2 eingeführten Änderungen Rechnung zu tragen

Hallo! Microsoft PM arbeitet hier an WSL & Command Line.

Mit WSL können Sie native, unveränderte Linux ELF-64-Binärdateien direkt unter Windows ausführen und Ihre bevorzugten Linux-Tools auf Ihrem Windows-Host-Betriebssystem ausführen.

WSL1 verfolgte den Ansatz, eine Linux-Syscall-kompatible Schicht am oberen Rand des NT-Kernels hinzuzufügen, sodass Linux-Binärdateien auf NT ausgeführt werden können und dasselbe zugrunde liegende Dateisystem, Netzwerk, Prozessliste usw. wie das Host-Betriebssystem verwendet werden.

Die bald veröffentlichte WSL2 hingegen führt die Binärdateien von Distributionen in Linux-Containern auf einem echten Linux-Kernel in einer leichten VM aus, die nur den von den ausgeführten Apps benötigten RAM zuweist, und gibt dann den freigegebenen RAM zurück an die Host-Betriebssystem. Dies bietet 100% Linux-Kompatibilität, ermöglicht die Ausführung Ihrer Linux-Tools mit nahezu nativer Leistung und verbraucht nur minimale Ressourcen, die vom Host benötigt werden, um sicherzustellen, dass Ihr Computer schnell und reibungslos läuft.

Vor WSL2 konnte der Docker-Client in WSL1 ausgeführt werden, um Docker für Windows auf Hyper-V auf dem lokalen Host auszuführen oder einen Remote-Docker-Server zu verwalten. Aus vielen technischen Gründen kann Docker Engine jedoch nicht auf WSL1 ausgeführt werden.

Sie können dies jedoch auch in Docker unter WSL2 tun, aber Sie können auch die Docker Engine selbst auf WSL ausführen, wenn Sie dies bevorzugen. Dies ist Dockers bevorzugter und zukünftiger Pfad für die Ausführung von Docker auf einem Windows-Desktop .

Weitere Informationen zur WSL finden Sie in den Videos und Dokumenten hier: https://aka.ms/learnwsl

Rich Turner
quelle
Ich denke, diese Antwort bezieht sich auf WSL, WSL 2 führt einen benutzerdefinierten Linux-Kernel aus, der mit Windows verbunden ist. Ich glaube, dass benutzerdefinierte Windows Linux-Kernel in einer VM ausgeführt wird.
Jordan Stewart
1
Es tat es. Habe gerade ein Update gepostet, um unsere WSL2-Realität besser widerzuspiegeln :)
Rich Turner
2

Das ist richtig. Eine Sache, die Sie nicht erwähnen, ist, dass die WSL derzeit selbst mit einer schnellen SSD / viel RAM / 8-Core-XEON-CPU ziemlich langsam ist. Dies ist in 01/2019 immer noch ein Problem. Ich habe gerade einen ray @ DESKTOP-O0MT13B erstellt: / mnt / c / Users / rayjh $ dd if = / dev / zero von = test bs = 64k count = 16k conv = fdatasync auf meiner Workstation mit einer Samsung SSD und nur 97,6 MB / s.

Wenn Sie Bare-Metal-Ubuntu LTS verwenden, wird diese Box MEHRERE Male erhalten. Beachten Sie die endlosen Probleme, wenn Sie versuchen, WSL mit VSCODE zu kombinieren.

Ich lösche Windows 10 von hier und installiere Ubuntu 18.04LTS.

rayj
quelle
Sie müssen nicht giftig sein, besonders am Ende. Sagen Sie uns lieber, was Sie getan haben, um die Ursache der Probleme zu untersuchen, mit denen Sie konfrontiert sind, und ob es sich um bekannte Probleme handelt oder nicht und ob jemand daran arbeitet, sie zu beheben oder nicht. Ich bin mir aber sicher, dass sie es sind. Und Sie müssen Windows nicht deinstallieren, sondern nur den Hyper-V-Manager installieren und Ubuntu schnell installieren. Sie sind auf eine Linux-Entwicklungsumgebung eingestellt, wenn Sie von einem virtuellen Linux-Desktop aus arbeiten möchten. Verwenden Sie andernfalls weiterhin WSL und warten Sie, bis Ihre Probleme behoben sind. 97 MB / s sind nicht so langsam.
Paul-Sebastian Manole
AFAIK Die Geschwindigkeitsprobleme hängen mit dem Windows-Dateizugriffssubsystem zusammen, und eine Problemumgehung ist in Arbeit.
Paul-Sebastian Manole
Die WSL scheint immer noch langsam zu sein. Es hat jedoch eine sehr schnelle Startzeit und ermöglicht die Verwendung gängiger Linux-Cli-Tools. Die Zuordnung des Linux- und Windows-Dateisystems scheint kompliziert zu sein.
Jordan Stewart
Es ist spürbar schneller geworden. Ich habe jedoch versucht, Miniconda zu verwenden und Pakete zu installieren, und es war immer noch etwas langsam.
Rayj