Ubuntu na Windows 10: Docker kontra WSL

12

Rozumiem, że obecnie można uruchomić Ubuntu na Windows 10 na dwa różne sposoby:

  1. Korzystanie z podsystemu Windows dla systemu Linux (WSL).
  2. Instalowanie dokera dla systemu Windows 10 i używanie kontenera z Ubuntu.

Nie mogłem jednak znaleźć łatwego do zrozumienia wyjaśnienia różnic między nimi (mówiąc o aplikacjach), a także zalet i wad.

Znalazłem post mówiący o użyciu dokera na WSL: Ubuntu przez (Windows Linux Subsystem) i Docker . Ale mówię o używaniu go bezpośrednio w systemie Windows 10. Będę wdzięczny za wszelkie informacje na temat tych dwóch.

alvgom
źródło
W żadnym z nich nie jestem ekspertem od napisania odpowiedzi, ale mój głos należy do Dockera. Powodem jest to, że Docker oznacza wirtualizację, więc wszystko powinno działać. Z drugiej strony WSL jest pełen błędów. Działa w przypadku testów porównawczych, zabawy i przede wszystkim rozwoju; ale jeśli zamierzasz wdrożyć coś poważnego, to nie jest twój wybór, przynajmniej jeszcze nie.
Hi-Angel,

Odpowiedzi:

15

Zaktualizowano 2020/02/18, aby odzwierciedlić zmiany wprowadzone w WSL2

Cześć! Microsoft PM działający na WSL i wierszu poleceń tutaj.

WSL pozwala na uruchamianie natywnych, niezmodyfikowanych plików binarnych Linux ELF-64 bezpośrednio w systemie Windows, a także umożliwia uruchamianie ulubionych narzędzi systemu Linux na „hoście” systemu operacyjnego Windows.

WSL1 podjął podejście polegające na dodaniu warstwy zgodnej z systemem Linux syscall w górnej części jądra NT, umożliwiając uruchamianie binariów Linux na szczycie NT, współużytkując ten sam podstawowy system plików, sieć, listę procesów itp., Co system hosta.

Z drugiej strony niedługo wypuszczony WSL2 uruchamia pliki binarne dystrybucji w kontenerach Linux, na prawdziwym jądrze Linuksa, w lekkiej maszynie wirtualnej, która przydziela tylko pamięć RAM potrzebną do uruchomionych aplikacji, a następnie zwalnia zwolnioną pamięć RAM z powrotem do system operacyjny hosta. Zapewnia to 100% kompatybilność z Linuksem i pozwala twoim narzędziom Linux działać z prawie natywną wydajnością i zużywa minimalne zasoby niezbędne z hosta, zapewniając, że twoja maszyna działa szybko i płynnie.

Przed wersją WSL2 można było uruchomić klienta Docker w WSL1, używając go do sterowania Dockerem dla Windows działającym na Hyper-V na hoście lokalnym lub do zarządzania zdalnym serwerem Docker. Ale nie można uruchomić Docker Engine na WSL1 z wielu powodów technicznych.

Jednak możesz zrobić to samo w Docker na WSL2, ale możesz również uruchomić sam silnik Docker na szczycie WSL, jeśli wolisz. Jest to preferowana i przyszła ścieżka Dockera do uruchamiania Dockera na pulpicie Windows .

Aby dowiedzieć się więcej o WSL, przejrzyj filmy i dokumenty tutaj: https://aka.ms/learnwsl

Rich Turner
źródło
Myślę, że ta odpowiedź dotyczy WSL, WSL 2 uruchamia niestandardowe jądro Linuksa, które współpracuje z Windows. Uważam, że niestandardowe jądro systemu Linux z systemem Linux działa na maszynie wirtualnej.
Jordan Stewart
1
Tak się stało. Właśnie opublikowałem aktualizację, aby lepiej odzwierciedlała naszą rzeczywistość WSL2 :)
Rich Turner
3

To jest poprawne. Jedną z rzeczy, o których nie wspominasz, jest to, że WSL jest obecnie raczej powolny w systemie io nawet z szybkim ssd / dużo RAM / 8-rdzeniowym procesorem xeon. Jest to nadal problem w 01/2019. Właśnie zrobiłem ray @ DESKTOP-O0MT13B: / mnt / c / Users / rayjh $ dd if = / dev / zero of = test bs = 64k count = 16k conv = fdatasync na mojej stacji roboczej z dyskiem Samsung SSD i mam tylko 97,6 MB / s.

Uruchamiając gołe metalowe ubuntu LTS, to urządzenie otrzyma KILKA razy tyle. Nie wspominając o niekończących się problemach, gdy próbujesz połączyć WSL z VSCODE.

Usuwam stąd system Windows 10 i instaluję system Ubuntu 18.04LTS.

rayj
źródło
Nie musisz być toksyczny, szczególnie na końcu. Powiedz nam raczej, co zrobiłeś, aby zbadać przyczynę problemów, z którymi się borykasz, i czy są to znane problemy, czy nie, i czy ktoś pracuje nad ich usunięciem, czy nie. Jestem pewien, że są. I nie musisz odinstalowywać systemu Windows, wystarczy zainstalować menedżera Hyper-V i szybko zainstalować Ubuntu i jesteś gotowy na środowisko programistyczne dla systemu Linux, jeśli chcesz pracować z wirtualnego pulpitu Linux. W przeciwnym razie nadal korzystaj z WSL i poczekaj, aż problemy zostaną naprawione. 97 MB / s nie jest tak wolne.
Paul-Sebastian Manole
1
AFAIK, problemy z prędkością są związane z podsystemem dostępu do plików Windows, a obejście jest w toku.
Paul-Sebastian Manole
1
WSL wciąż wydaje się być powolny. Ale ma bardzo szybki czas uruchamiania i pozwala na użycie typowych narzędzi linuksowych cli. Mapowanie systemu plików Linux i Windows wydaje się skomplikowane.
Jordan Stewart
Stało się zauważalnie szybsze. Próbowałem jednak użyć Minicondy i zainstalować pakiety, ale nadal było to trochę wolne.
rayj