- การใช้งานคอนเทนเนอร์แบบเนทีฟโดยใช้ wslc.exe เพื่อลดภาระการทำงานของระบบ
- การเพิ่มประสิทธิภาพการทำงานโดยใช้แบ็กเอนด์ WSL 2 เมื่อเทียบกับเวอร์ชันก่อนหน้า
- การผสานรวมอย่างราบรื่นกับ Visual Studio Code และ Dev Containers เพื่อเพิ่มประสิทธิภาพการทำงาน
- การวิเคราะห์ข้อกำหนดด้านใบอนุญาตและเวอร์ชัน Windows ที่จำเป็นสำหรับแต่ละวิธี
หากคุณเป็นนักพัฒนาซอฟต์แวร์ที่ทำงานบน Windows คุณอาจเคยเจอปัญหาคลาสสิกที่ว่าอยากได้ประสิทธิภาพของ Linux โดยไม่ต้องฟอร์แมตพีซีหรือต้องวุ่นวายกับเครื่องเสมือนที่กิน RAM ไปมากมาย โชคดีที่ระบบนิเวศได้พัฒนาไปอย่างมาก และตอนนี้เรามีตัวเลือกที่ทำให้การใช้งาน Docker container บน WSLเป็นเรื่องง่าย ทำให้เราได้สิ่งที่ดีที่สุดจากทั้งสองโลกบนเครื่องเดียว
สิ่งต่างๆ เปลี่ยนไปมากในช่วงหลังๆ นี้ จากการตั้งค่าที่ยุ่งยากซับซ้อน ไปสู่โซลูชันที่ใช้งานง่ายเกือบจะเหมือนโปรแกรมดั้งเดิม ไม่ว่าคุณจะกำลังมองหาเครื่องมือระดับมืออาชีพที่มีอินเทอร์เฟซแบบกราฟิก หรือชอบความเบาของ CLIที่ผสานรวมเข้ากับระบบโดยตรง ก็มีวิธีการที่ชัดเจนในการตั้งค่าสภาพแวดล้อมการพัฒนาของคุณโดยที่คอมพิวเตอร์ของคุณไม่ต้องร้องขอความเมตตาเนื่องจากหน่วยความจำไม่เพียงพอ
รูปแบบใหม่: คอนเทนเนอร์แบบเนทีฟพร้อม wslc.exe

ไมโครซอฟต์ได้ทำการเคลื่อนไหวครั้งสำคัญด้วยการเปิดตัวฟีเจอร์ทดลองใช้งานสาธารณะที่อนุญาตให้ผู้ใช้เรียกใช้คอนเทนเนอร์ Linux ได้โดยตรง หัวใจสำคัญของฟีเจอร์นี้คือwslc.exe ซึ่งเป็นอินเทอร์เฟซบรรทัดคำสั่งที่เลียนแบบคำสั่ง Docker ที่คุ้นเคย แต่ไม่จำเป็นต้องใช้ Docker Desktop สิ่งที่น่าสนใจที่สุดคือ มันไม่ได้ใช้การแจกจ่าย WSL มาตรฐาน แต่จะสร้างไมโคร VM Hyper-V ขนาดเล็กสำหรับแต่ละคอนเทนเนอร์ ซึ่งช่วยแยกกระบวนการและเพิ่มความปลอดภัยได้อย่างมาก
ในการเริ่มต้นใช้งานเครื่องมือนี้ คุณต้องมี Windows 11 (ควรเป็นเวอร์ชัน 26100 หรือสูงกว่า) และ อัปเดต WSL เป็นเวอร์ชันพรีวิว โดยใช้คำสั่ง wsl --update --pre-releaseเมื่อทำขั้นตอนนี้เสร็จแล้ว ก็เพียงแค่เรียกใช้งาน wsl --install-feature containers เพื่อให้ทุกอย่างพร้อม เพื่อตรวจสอบว่าไม่มีข้อผิดพลาด คุณสามารถเรียกใช้คอนเทนเนอร์อย่างรวดเร็วได้ด้วยคำสั่ง wslc run --rm hello-world และถ้าคุณเห็นข้อความทักทาย นั่นหมายความว่า สภาพแวดล้อมของคุณพร้อมใช้งานแล้ว.
มาเริ่มกันเลย: การสร้างภาพของคุณเอง
เมื่อคุณต้องการเปลี่ยนจากตัวอย่างพื้นฐานไปสู่สิ่งที่เป็นรูปธรรมมากขึ้น วิธีแก้ปัญหาที่ดีที่สุดคือการใช้ VS Code ร่วมกับส่วนขยาย WSL ลองนึกภาพว่าคุณมีโปรเจ็กต์ Django คุณเพียงแค่ต้องสร้างไฟล์ชื่อ... ไฟล์คอนเทนเนอร์ในรูท โดยที่คุณกำหนดอิมเมจพื้นฐาน (เช่น Python 3) คัดลอกข้อกำหนด และติดตั้งส่วนประกอบที่จำเป็น จากนั้นใช้คำสั่ง wslc build -t nombre-de-tu-app . สำหรับ สร้างภาพแบบกำหนดเอง.
คำสั่งหลักในการเริ่มต้นคือ wslc run -d -p 8000:8000 nombre-de-tu-appวิธีนี้จะทำให้ Windows สามารถเข้าถึงพอร์ตของคอนเทนเนอร์ได้ หากคุณต้องการดูว่าเกิดอะไรขึ้นภายใน คุณสามารถใช้คำสั่งต่อไปนี้ได้ wslc container logs หรือดำเนินการคำสั่งภายในด้วย wslc execหากคุณสังเกตเห็นว่าดิสก์กำลังเต็ม อย่าลืมใช้คำสั่ง `return` ตัดแต่งคอนเทนเนอร์ wslc เพื่อลบสิ่งที่คุณไม่ได้ใช้งานอีกต่อไป
ทางเลือกแบบคลาสสิก: Docker Desktop และ WSL 2

แม้ว่าโซลูชันแบบเนทีฟจะฟังดูดี แต่ Docker Desktop ยังคงเป็นมาตรฐานเนื่องจากความเสถียรและอินเทอร์เฟซที่สวยงาม หัวใจสำคัญอยู่ที่การใช้งาน แบ็กเอนด์ WSL 2ซึ่งเร็วกว่าเวอร์ชัน 1 อย่างมาก เนื่องจากมีการรวมเคอร์เนล Linux จริงและระบบไฟล์ ext4 ดั้งเดิมไว้ด้วย นี่ถือเป็นการปรับปรุงครั้งใหญ่ในด้าน... ความเร็วในการรับและส่งข้อมูลไฟล์การดำเนินการต่างๆ เช่น npm install o git clone บิน.
หากคุณติดตั้งระบบมาจากเวอร์ชันเก่า วิธีที่ดีที่สุดคือการล้างข้อมูลอย่างละเอียด ลบโฟลเดอร์ที่เหลืออยู่ทั้งหมด AppData และกำจัดร่องรอยทั้งหมดให้หมดไป DOCKER_HOST ในที่เก็บถาวร .bashrc สิ่งสำคัญคือต้องหลีกเลี่ยงความผิดพลาดทั่วไปของ การเชื่อมต่อกับ Docker daemonเมื่อทำความสะอาดเสร็จแล้ว ให้ติดตั้ง Docker Desktop เวอร์ชันล่าสุด และตรวจสอบให้แน่ใจว่าได้เลือกตัวเลือกดังกล่าวในการตั้งค่าแล้ว การผสานรวมเข้ากับระบบปฏิบัติการ WSL ของคุณ.
การตั้งค่าด้วยตนเองสำหรับผู้ใช้ขั้นสูง
ผู้ใช้บางรายอาจไม่ต้องการใช้ Docker Desktop เนื่องจากปัญหาด้านลิขสิทธิ์ขององค์กรหรือการใช้ทรัพยากรมากเกินไป ในกรณีเช่นนั้น สามารถติดตั้ง Docker engine โดยตรงบน Ubuntu ภายใน WSL ได้ ซึ่งจะต้องสร้างผู้ใช้ที่ไม่ใช่ root เพื่อหลีกเลี่ยงความเสี่ยงด้านความปลอดภัย และให้สิทธิ์การเข้าถึงแก่ผู้ใช้นั้น สิทธิพิเศษ sudo และดำเนินการติดตั้ง docker.io y docker-compose ผ่านทางเทอร์มินัล วิธีนี้ค่อนข้างต้องลงมือทำเอง แต่ก็ให้ผลลัพธ์ที่ดีกว่า ควบคุมปีศาจได้อย่างสมบูรณ์ และทรัพยากรระบบ
การเปรียบเทียบและการเลือกเส้นทาง

การเลือกใช้ระหว่าง wslc และ Docker Desktop นั้นขึ้นอยู่กับลักษณะงานของคุณเป็นหลัก หากคุณทำงานในบริษัทขนาดใหญ่และต้องการ... หลีกเลี่ยงค่าใช้จ่ายด้านใบอนุญาตหรือหากคุณต้องการคอนเทนเนอร์สำหรับการพัฒนาอย่างรวดเร็วใน VS Code แล้ว wslc ก็เป็นตัวเลือกที่ยอดเยี่ยม ยิ่งไปกว่านั้น การผสานรวมกับ... VS Code Dev Containers ง่ายมากครับ คุณแค่ต้องเปลี่ยน Docker Path เป็น... wslc ในการตั้งค่า JSON
ในทางกลับกัน หากคุณใช้ตัวจัดการระบบอย่างKubernetes หรือ Rancher Desktop Docker Desktop ก็ยังคงมีความสำคัญ เนื่องจากโซลูชันดั้งเดิมของ WSL ยังไม่ครอบคลุมเลเยอร์การจัดการระบบดังกล่าว นอกจากนี้ โปรดจำไว้ว่าWindows 11 Pro หรือ Enterpriseเป็นข้อกำหนดที่จำเป็นสำหรับการใช้คุณสมบัติการแยก Hyper-V ที่จำเป็นสำหรับ wslc เนื่องจากเวอร์ชัน Home ไม่รองรับคุณสมบัติเหล่านี้
การมีสภาพแวดล้อมคอนเทนเนอร์ที่กำหนดค่าอย่างดีบน Windows ช่วยพลิกโฉมประสบการณ์การพัฒนา ทำให้เราสามารถสลับไปมาระหว่างเครื่องมือวิเคราะห์ข้อมูล เว็บเซิร์ฟเวอร์ และฐานข้อมูลได้โดยไม่ทำให้ระบบปฏิบัติการหลักรก ไม่ว่าจะเป็นการเลือกใช้ไมโคร VM ที่มีน้ำหนักเบาของ Microsoft หรือชุดโปรแกรม Docker ที่แข็งแกร่ง สิ่งสำคัญคือการใช้ประโยชน์จากสถาปัตยกรรม WSL 2เพื่อเพิ่มประสิทธิภาพสูงสุดและรักษาความยืดหยุ่นในขั้นตอนการทำงานประจำวันของเรา