WSL เคอร์เนลลินุกซ์ที่รันอยู่ในวินโดวส์นับเป็นเครื่องมือที่ช่วยให้นักพัฒนาสามารถเขียนแอปลินุกซ์บนวินโดวส์ได้อย่างสะดวก ตอนนี้ออกเวอร์ชั่น 2.0.0 pre-release ให้นักพัฒนามาทดสอบกันก่อนจะออกตัวจริง โดยมีฟีเจอร์สำคัญคือการคืนแรมและดิสก์ตามการใช้งานจริง ทำให้ระบบรวมเป็นเนื้อเดียวกับวินโดวส์มากขึ้น
ฟีเจอร์ชุดนี้ยังอยู่ในสถานะทดลองทั้งหมด โดยที่จริงเป็น 6 ฟีเจอร์ที่ทำให้ WSL ทำงานเป็นเนื้อเดียวกับวินโดวส์มากขึ้น ได้แก่
ฟีเจอร์ทั้งหมดหากทำงานได้เต็มที่ก็นับว่าแทบจะเป็นเนื้อเดียวกับวินโดวส์อย่างสมบูรณ์ อย่างไรก็ดี ฟีเจอร์ทั้งหมดยังอยู่ในสถานะทดลอง ผู้ใช้ต้องแก้คอนฟิกเปิดใช้งานเอง และมีปัญหาที่รู้อยู่แล้วจำนวนหนึ่ง เช่น autoMemoryReclaim มีปัญหาหากรัน docker daemon ใน WSL โดยตรง (ไม่มีปัญหาหากใช้ Docker Desktop), หรือ mirrored network ก็ยังมีปัญหาเมื่อใช้กับ VSCode Remote รวมถึงฟีเจอร์หลายตัวจำเป็นต้องใช้ Windows Insider ด้วย กว่าจะใช้งานได้เต็มที่ก็คงต้องรออีกระยะหนึ่ง แต่ก็นับว่าเป็นเส้นทางชัดเจนว่าจะใช้งานได้ในอนาคต
ที่มา - Windows Command Line Blog
Comments
ผมจะได้เลิกกังวลสั่ง
docker builder prune -af
และลบ docker image รัวๆ หลังใช้เสร็จจนแทบเป็นวิตกจริตสักที 😩 เมื่อก่อนเลยไม่รู้มันโตไปเกือบ 50 GBผมชอบแบบเห็นเป็นคนละเครื่องมากกว่า ฝึก config network ไปในตัว
มันมีปัญหาเยอะตอนจะเปิด service จากใน WSL ให้คนนอกเข้ามาครับ ต้องทำ proxy กันวุ่นวาย แถม IP ของ WSL ก็ไม่ fixed
lewcpe.com, @wasonliw
ปกติคุณ lew ทำอย่างไรครับ
ของผม https://i.imgur.com/dqUlXCg.png
ข้อ 4,5,6 นี้ทำแค่ครั้งเดียว
ถ้าทำแบบเดียวกันผมว่ามันก็ไม่ได้ยุ่งเท่าไร ผมนั่ง capture รูปนานกว่า config อีก 5555
เผื่อใครสนใจ
มันเอาไว้ get IP ของ distro นั้น แต่มันได้ space ต่อหลังมาด้วย ต้อง trim ก่อนจะเอาไปใช้
และใครจะ access แค่ local network (วง LAN) ไม่ต้องทำข้อ 5-6
ครับ ท่าเดียวกันเลย แต่ผมให้มันรันหลัง boot ไม่ผ่านแฮะ
lewcpe.com, @wasonliw
"แต่ผมให้มันรันหลัง boot"
นี้หมายถึง run อะไร หลัง boot อะไรครับ
แรกๆ ผมก็เจอปัญหานิดหน่อย
- ต้องลบ port ที่ forward ไว้ออกก่อน boot WSL (netsh interface portproxy reset)
- ผมดันไป listen port ที่ app อื่นใช้งานอยู่ (netsh interface portproxy add v4tov4 listenport=80 ...)
- และถ้าเป็น WSL distro เก่าหน่อย อาจจะมี firewall active อยู่ (ufw)
ขอบคุณทั้งสองท่านที่แชร์ข้อมูลนะครับ แล้วก็ขออนุญาติ save รูป ไว้อ้างอิงด้วย แหะๆ
ผมเองกำลัวเจอปัญหาเรื่อง network เวลาต้องการจะ access localhost ฝั่ง windows จาก wsl (ซึ่งไม่ใช่ท่าปกติ) พอดี backend เป็น .net core ซึ่งผมยัง debug ด้วย code ที่อยู่ใน wsl ไม่เป็น เลยต้องย้ายมารันบน Windows แง่ม
..: เรื่อยไป
ทำเป็น optional ก็ดีครับ ผมเองก็อยากให้มันเห็น network card ของตัว host ด้วย จะได้จัดการอะไรได้สะดวกขึ้นเยอะ
ผมเห็นด้วยครับ ถ้าแค่เป็น Option ให้เลือกได้ก็โอเค
ตัวนี้ทำให้ WSL ใช้ IPv6 ได้สักที เป็นทางแก้ปัญหาที่ออกมาดีกว่าที่คิด
ลอยคอ รอคอยเลยครับ
..: เรื่อยไป