Ubuntu บน Windows 10: Docker กับ WSL


11

ฉันเข้าใจว่าขณะนี้สามารถใช้งาน Ubuntu บน Windows 10 ได้สองวิธี:

  1. การใช้ระบบย่อย Windows สำหรับ Linux (WSL)
  2. การติดตั้ง docker สำหรับ Windows 10 และใช้คอนเทนเนอร์ด้วย Ubuntu

อย่างไรก็ตามฉันไม่สามารถหาคำอธิบายที่เข้าใจง่ายว่าอะไรคือความแตกต่างระหว่างพวกเขา (พูดคุยเกี่ยวกับแอปพลิเคชัน) รวมถึงข้อดีและข้อเสีย

ผมพบว่าการโพสต์พูดคุยเกี่ยวกับการใช้นักเทียบท่าใน WSL: อูบุนตูผ่าน (Windows ลินุกซ์ Subsystem) และหาง แต่ฉันกำลังพูดถึงการใช้งานโดยตรงบน Windows 10 ดังนั้นฉันจะขอบคุณข้อมูลใด ๆ เกี่ยวกับสองสิ่งนี้


ฉันไม่มีความเชี่ยวชาญในการเขียนคำตอบใด ๆ แต่การลงคะแนนของฉันไปที่ Docker เหตุผลก็คือ Docker แสดงถึงการจำลองเสมือนดังนั้นสิ่งต่างๆควรใช้งานได้ WSL ในทางกลับกันเต็มไปด้วยข้อบกพร่อง มันใช้งานได้กับมาตรฐานความสนุกและการพัฒนาส่วนใหญ่ แต่ถ้าคุณกำลังจะปรับใช้สิ่งที่ร้ายแรงนี่ไม่ใช่ตัวเลือกของคุณอย่างน้อยก็ยังไม่
สวัสดีแองเจิล

คำตอบ:


14

อัปเดต 2020/02/18 เพื่อให้สอดคล้องกับการเปลี่ยนแปลงที่เกิดขึ้นใน WSL2

Hi! Microsoft PM ทำงานกับ WSL & Command Line ที่นี่

WSL ช่วยให้คุณสามารถรันไบนารี Linux ELF-64 แบบเนทีฟที่ไม่ได้แก้ไขบน Windows โดยตรงและช่วยให้คุณสามารถรันเครื่องมือ Linux ที่คุณโปรดปรานบนระบบปฏิบัติการ Windows "โฮสต์" ของคุณ

WSL1 ใช้วิธีการเพิ่มเลเยอร์ที่เข้ากันได้กับ Linux syscall ที่ด้านบนของเคอร์เนล NT ทำให้ลินุกซ์ไบนารีสามารถรันบนยอด NT การแชร์ระบบไฟล์พื้นฐานระบบเครือข่ายรายการกระบวนการ ฯลฯ ในฐานะโฮสต์ระบบปฏิบัติการ

อีกไม่นานที่จะเปิดตัว WSL2 จะเรียกใช้ไบนารีของ distros ภายในคอนเทนเนอร์ Linux บนยอดเคอร์เนลของ Linux ภายใน VM ที่มีน้ำหนักเบาซึ่งจัดสรรเฉพาะ RAM ที่แอพนั้นต้องการและจากนั้นปล่อยแรมกลับไปที่ โฮสต์ระบบปฏิบัติการ สิ่งนี้ให้ความเข้ากันได้กับ Linux 100% และช่วยให้เครื่องมือ Linux ของคุณทำงานได้ใกล้เคียงกับประสิทธิภาพดั้งเดิมและใช้ทรัพยากรขั้นต่ำที่จำเป็นจากโฮสต์ทำให้เครื่องของคุณทำงานได้อย่างรวดเร็วและราบรื่น

ก่อน WSL2 สามารถเรียกใช้ไคลเอ็นต์ Docker ใน WSL1 โดยใช้เพื่อขับ Docker สำหรับ Windows ที่ทำงานบน Hyper-V บนโฮสต์โลคัลหรือเพื่อจัดการเซิร์ฟเวอร์ Docker ระยะไกล แต่ไม่มีใครสามารถเรียกใช้ Docker Engine บน WSL1 ได้ด้วยเหตุผลทางเทคนิคมากมาย

อย่างไรก็ตามคุณสามารถทำเช่นเดียวกันใน Docker บน WSL2 แต่คุณสามารถเรียกใช้ Docker Engine บน WSL ได้หากคุณต้องการ นี้เป็นที่ต้องการและในอนาคตเส้นทางหางของสำหรับการทำงานเทียบท่าบนเดสก์ทอปของ Windows

หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับ WSL ตรวจสอบวิดีโอและเอกสารที่นี่: https://aka.ms/learnwsl


ฉันคิดว่าคำตอบนี้หมายถึง WSL, WSL 2 รันเคอร์เนล linux ที่กำหนดเองซึ่งเชื่อมต่อกับ windows ฉันเชื่อว่าเคอร์เนล windows linux แบบกำหนดเองทำงานใน VM
Jordan Stewart

1
มันทำ. เพิ่งโพสต์การอัปเดตเพื่อสะท้อนความเป็นจริง WSL2 ของเรา :)
Rich Turner

2

ถูกต้อง. สิ่งหนึ่งที่คุณไม่สามารถพูดถึงได้คือ WSL นั้นค่อนข้างช้าใน io แม้ว่าจะมี ram / 8-core xeon cpu ที่ ssd จำนวนมาก นี่ยังคงเป็นปัญหาในวันที่ 01/2019 ฉันเพิ่งได้เรย์ @ DESKTOP-O0MT13B: / mnt / c / ผู้ใช้ / rayjh $ dd ถ้า = / dev / ศูนย์ของ = ทดสอบ bs = 64k นับ = 16k Conv = fdatasync บนเวิร์กสเตชันของฉันกับ samsung SSD และมี 97.6 MB เท่านั้น / s

การใช้งานโลหะเปลือย Ubuntu LTS กล่องนี้จะได้รับหลายครั้ง ไม่ต้องสนใจปัญหาที่ไม่สิ้นสุดเมื่อคุณพยายามรวม WSL กับ VSCODE

ฉันกำลังเช็ด windows 10 จากที่นี่และติดตั้ง Ubuntu 18.04LTS


คุณไม่จำเป็นต้องเป็นพิษโดยเฉพาะตอนท้าย โปรดบอกเราว่าคุณทำอะไรเพื่อค้นคว้าสาเหตุของปัญหาที่คุณเผชิญอยู่และไม่ว่าจะเป็นปัญหาที่ทราบหรือไม่และถ้ามีคนกำลังแก้ไขปัญหาอยู่หรือไม่ ฉันแน่ใจว่าพวกเขากำลัง และคุณไม่จำเป็นต้องถอนการติดตั้ง windows คุณเพียงแค่ต้องติดตั้งตัวจัดการไฮเปอร์ - วีและติดตั้ง Ubuntu อย่างรวดเร็วและคุณตั้งค่าสำหรับสภาพแวดล้อมการพัฒนา Linux หากคุณต้องการทำงานจากภายใน Linux Desktop เสมือน หรือใช้ WSL ต่อไปและรอให้ปัญหาของคุณได้รับการแก้ไข 97 MB / s นั้นไม่ช้า
Manole Paul-Sebastian

AFAIK ปัญหาความเร็วเกี่ยวข้องกับระบบย่อยการเข้าถึงไฟล์ Windows และวิธีแก้ไขปัญหาอยู่ในการทำงาน
พอล - เซบาสเตียน Manole

WSL ยังดูเหมือนช้า แต่มันมีเวลาเริ่มต้นที่รวดเร็วมากและอนุญาตให้ใช้เครื่องมือ linux cli ทั่วไป การแม็พระบบไฟล์ linux และ windows ดูเหมือนว่าซับซ้อน
Jordan Stewart

มันจะรับรู้ได้เร็วขึ้น อย่างไรก็ตามฉันพยายามใช้ miniconda และติดตั้งแพ็คเกจและมันก็ยังช้าไปหน่อย
rayj
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.