Ubuntu pada Windows 10: Docker vs WSL

11

Saya mengerti bahwa saat ini dimungkinkan untuk menjalankan Ubuntu pada Windows 10 dengan dua cara berbeda:

  1. Menggunakan Subsistem Windows untuk Linux (WSL).
  2. Menginstal buruh pelabuhan untuk Windows 10, dan gunakan wadah dengan Ubuntu.

Namun, saya tidak dapat menemukan penjelasan yang mudah dimengerti tentang apa perbedaan di antara mereka (berbicara tentang aplikasi), serta kelebihan dan kekurangannya.

Saya menemukan posting berbicara tentang menggunakan buruh pelabuhan di WSL: Ubuntu via (Windows Linux Subsystem) dan Docker . Tetapi saya sedang berbicara tentang menggunakannya secara langsung pada Windows 10. Jadi saya akan sangat menghargai informasi tentang keduanya.

alvgom
sumber
Saya bukan ahli dalam salah satu dari mereka untuk menulis jawaban, tetapi suara saya masuk ke Docker. Alasannya adalah bahwa Docker menyiratkan virtualisasi, jadi semuanya seharusnya berfungsi. WSL di sisi lain penuh dengan bug. Ini berfungsi untuk tolok ukur, kesenangan, dan sebagian besar pengembangan; tetapi jika Anda akan menggunakan sesuatu yang serius, ini bukan pilihan Anda, setidaknya belum.
Hi-Angel

Jawaban:

14

Diperbarui 2020/02/18 untuk mencerminkan perubahan yang diperkenalkan di WSL2

Hai! Microsoft PM bekerja di WSL & Command Line di sini.

WSL memungkinkan Anda untuk menjalankan binari ELF-64 Linux asli dan tidak dimodifikasi secara langsung di Windows, dan memungkinkan Anda untuk menjalankan alat Linux favorit Anda di atas OS "host" Windows Anda.

WSL1 mengambil pendekatan untuk menambahkan lapisan kompatibel syscall Linux di bagian atas kernel NT, yang memungkinkan binari Linux untuk menjalankan di atas NT, berbagi sistem file yang sama, jaringan, daftar proses, dll sebagai OS host.

WSL2 yang akan segera dirilis, di sisi lain, menjalankan biner distro dalam wadah Linux, di atas kernel Linux asli, di dalam VM ringan yang hanya mengalokasikan RAM yang dibutuhkan oleh aplikasi yang dijalankannya, dan kemudian melepaskan RAM yang dibebaskan ke tuan rumah OS. Ini memberikan kompatibilitas Linux 100%, dan memungkinkan alat Linux Anda untuk berjalan dengan kinerja asli yang hampir mendekati, dan mengkonsumsi sumber daya minimum yang diperlukan dari host, memastikan mesin Anda berjalan cepat dan lancar.

Sebelum WSL2, seseorang dapat menjalankan klien Docker di WSL1, menggunakannya untuk mengarahkan Docker untuk Windows yang berjalan di atas Hyper-V pada host lokal, atau untuk mengelola server Docker jarak jauh. Tetapi seseorang tidak dapat menjalankan Docker Engine di WSL1 karena banyak alasan teknis.

Namun, Anda dapat melakukan hal yang sama di Docker pada WSL2, tetapi Anda juga dapat menjalankan Docker Engine di atas WSL jika Anda mau. Ini adalah, pilihan Docker yang lebih disukai dan yang akan datang untuk menjalankan Docker di desktop Windows .

Untuk mempelajari lebih lanjut tentang WSL, tinjau video & dokumen di sini: https://aka.ms/learnwsl

Turner Kaya
sumber
Saya pikir jawaban ini mengacu pada WSL, WSL 2 menjalankan kernel linux kustom, yang berinteraksi dengan windows. Saya percaya bahwa kernel windows linux kustom berjalan di VM.
Jordan Stewart
1
Itu benar. Baru saja memposting pembaruan untuk lebih mencerminkan realitas WSL2 kami :)
Rich Turner
2

Itu betul. Satu hal yang tidak Anda sebutkan adalah bahwa WSL saat ini agak lambat di io bahkan dengan ssd / lot ram / 8-core xeon cpu. Ini masih menjadi masalah pada 01/2019. Saya baru saja melakukan ray @ DESKTOP-O0MT13B: / mnt / c / Pengguna / rayjh $ dd jika = / dev / nol = test bs = 64k count = 16k conv = fdatasync pada workstation saya dengan SSD Samsung dan hanya mendapat 97,6 MB / s.

Menjalankan bare metal ubuntu LTS kotak ini akan mendapatkan BEBERAPA kali lipat dari itu. Jangan pedulikan masalah yang tak ada habisnya ketika Anda mencoba menggabungkan WSL dengan VSCODE.

Saya menghapus windows 10 dari sini dan menginstal ubuntu 18.04LTS.

rayj
sumber
Anda tidak perlu beracun, terutama di bagian akhir. Sebaliknya, tolong beri tahu kami apa yang Anda lakukan untuk meneliti penyebab masalah yang Anda hadapi dan apakah masalah itu diketahui atau tidak dan apakah seseorang sedang berupaya memperbaikinya atau tidak. Saya yakin mereka begitu. Dan Anda tidak perlu menghapus jendela, Anda hanya perlu menginstal hyper-v manager dan menginstal Ubuntu dengan cepat dan Anda siap untuk lingkungan pengembangan Linux jika Anda ingin bekerja dari dalam Linux Desktop virtual. Kalau tidak, tetap gunakan WSL dan tunggu sampai masalah Anda teratasi. 97 MB / s tidak terlalu lambat.
Paul-Sebastian Manole
AFAIK masalah kecepatan terkait dengan subsistem akses file Windows dan solusi sedang dalam penyelesaian.
Paul-Sebastian Manole
WSL sepertinya masih lambat. Tapi itu memang memiliki waktu start up yang sangat cepat, dan memungkinkan penggunaan alat linux umum. Memetakan sistem file linux dan windows tampaknya rumit.
Jordan Stewart
Itu menjadi lebih cepat. Namun saya mencoba menggunakan miniconda dan menginstal paket dan itu masih agak lambat.
rayj