การพัฒนาด้วย Docker บนระบบย่อย Windows สำหรับ Linux (WSL)

การพัฒนาด้วย Docker บนระบบย่อย Windows สำหรับ Linux (WSL)

หากต้องการทำงานร่วมกับโครงการ Docker ใน WSL อย่างสมบูรณ์ คุณต้องติดตั้ง WSL 2 ในขณะที่เขียน การใช้งานนี้สามารถทำได้โดยเป็นส่วนหนึ่งของการเข้าร่วมในโปรแกรม Windows Insider เท่านั้น (WSL 2 มีให้ใช้งานในรุ่น 18932 และสูงกว่า) นอกจากนี้ยังควรกล่าวถึงแยกต่างหากว่าต้องใช้เวอร์ชัน Windows 10 Pro เพื่อติดตั้งและกำหนดค่า Docker Desktop

ขั้นตอนแรก

หลังจากเข้าร่วมโปรแกรม Insider และติดตั้งการอัปเดต คุณจะต้องติดตั้ง Linux distribution (Ubuntu 18.04 ในตัวอย่างนี้) และ Docker Desktop พร้อม WSL 2 Tech Preview:

  1. การแสดงตัวอย่างเทคโนโลยี Docker Desktop WSL 2
  2. Ubuntu 18.04 จาก Windows Store

ทั้งสองจุดเราปฏิบัติตามคำแนะนำในการติดตั้งและการกำหนดค่าทั้งหมด

การติดตั้งการกระจาย Ubuntu 18.04

ก่อนที่จะรัน Ubuntu 18.04 คุณต้องเปิดใช้งาน Windows WSL และ Windows Virtual Machine Platform โดยการรันสองคำสั่งใน PowerShell:

  1. Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux (ต้องรีสตาร์ทคอมพิวเตอร์)
  2. Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

หลังจากนั้นเราต้องแน่ใจว่าเราจะใช้ WSL v2 เมื่อต้องการทำเช่นนี้ ในเทอร์มินัล WSL หรือ PowerShell ให้รันคำสั่งต่อไปนี้:

  • wsl -l -v — ดูว่าเวอร์ชันใดที่ติดตั้งอยู่ในปัจจุบัน หากเป็น 1 เราจะเลื่อนลงไปตามรายการ
  • wsl --set-version ubuntu 18.04 2 - เพื่ออัปเดตเป็นเวอร์ชัน 2
  • wsl -s ubuntu 18.04 — ติดตั้ง Ubuntu 18.04 เป็นการแจกจ่ายเริ่มต้น

ตอนนี้คุณสามารถเริ่ม Ubuntu 18.04 และกำหนดค่าได้ (ระบุชื่อผู้ใช้และรหัสผ่านของคุณ)

การติดตั้ง Docker Desktop

ทำตามคำแนะนำระหว่างกระบวนการติดตั้ง คอมพิวเตอร์จะต้องรีสตาร์ทหลังการติดตั้งและเมื่อเริ่มต้นระบบครั้งแรกเพื่อเปิดใช้งาน Hyper-V (ซึ่งต้องใช้ Windows 10 Pro เพื่อรองรับ)

ที่สำคัญ! หาก Docker Desktop รายงานว่าไฟร์วอลล์บล็อก ให้ไปที่การตั้งค่าโปรแกรมป้องกันไวรัสและทำการเปลี่ยนแปลงกฎไฟร์วอลล์ต่อไปนี้ (ในตัวอย่างนี้ Kaspersky Total Security ถูกใช้เป็นโปรแกรมป้องกันไวรัส):

  • ไปที่การตั้งค่า -> ความปลอดภัย -> ไฟร์วอลล์ -> กำหนดค่ากฎแพ็คเก็ต -> บริการท้องถิ่น (TCP) -> แก้ไข
  • ลบพอร์ต 445 ออกจากรายการพอร์ตในเครื่อง
  • รักษา

หลังจากเริ่ม Docker Desktop ให้เลือก WSL 2 Tech Preview จากเมนูบริบท

การพัฒนาด้วย Docker บนระบบย่อย Windows สำหรับ Linux (WSL)

ในหน้าต่างที่เปิดขึ้น ให้คลิกปุ่มเริ่ม

การพัฒนาด้วย Docker บนระบบย่อย Windows สำหรับ Linux (WSL)

ขณะนี้ Docker และ Docker-compose พร้อมใช้งานแล้วในการกระจาย WSL

ที่สำคัญ! ขณะนี้ Docker Desktop ที่อัปเดตมีแท็บที่มี WSL ภายในหน้าต่างการตั้งค่า เปิดใช้งานการสนับสนุน WSL ที่นั่น

การพัฒนาด้วย Docker บนระบบย่อย Windows สำหรับ Linux (WSL)

ที่สำคัญ! นอกจากช่องทำเครื่องหมายการเปิดใช้งาน WSL แล้ว คุณยังต้องเปิดใช้งานการกระจาย WSL ของคุณในแท็บทรัพยากร -> การรวม WSL

การพัฒนาด้วย Docker บนระบบย่อย Windows สำหรับ Linux (WSL)

ยิง

สิ่งที่ไม่คาดคิดคือปัญหามากมายที่เกิดขึ้นเมื่อพยายามยกคอนเทนเนอร์ของโครงการที่อยู่ในไดเร็กทอรีผู้ใช้ Windows

ข้อผิดพลาดประเภทต่างๆ ที่เกี่ยวข้องกับการเปิดตัวสคริปต์ทุบตี (ซึ่งมักจะเริ่มต้นเมื่อสร้างคอนเทนเนอร์สำหรับการติดตั้งไลบรารีและการแจกจ่ายที่จำเป็น) และสิ่งอื่นๆ ที่พบบ่อยสำหรับการพัฒนาบน Linux ทำให้เราคิดถึงการวางโปรเจ็กต์โดยตรงในไดเร็กทอรีผู้ใช้ของ Ubuntu 18.04

.

จากวิธีแก้ไขปัญหาก่อนหน้านี้มีดังต่อไปนี้: วิธีทำงานกับไฟล์โครงการผ่าน IDE ที่ติดตั้งบน Windows ตาม "แนวทางปฏิบัติที่ดีที่สุด" ฉันพบทางเลือกเดียวสำหรับตัวเอง นั่นคือการทำงานผ่าน VSCode (แม้ว่าฉันจะเป็นแฟนตัวยงของ PhpStorm ก็ตาม)

หลังจากดาวน์โหลดและติดตั้ง VSCode อย่าลืมติดตั้งในส่วนขยาย ชุดส่วนขยายการพัฒนาระยะไกล.

หลังจากติดตั้งส่วนขยายดังกล่าวแล้ว ให้รันคำสั่ง code . ในไดเร็กทอรีโครงการเมื่อ VSCode กำลังทำงาน

ในตัวอย่างนี้ จำเป็นต้องใช้ nginx เพื่อเข้าถึงคอนเทนเนอร์ผ่านเบราว์เซอร์ ติดตั้งผ่านทาง sudo apt-get install nginx มันกลับกลายเป็นว่าไม่ง่ายนัก ขั้นแรก เราต้องอัปเดตการกระจาย WSL ด้วยการรัน sudo apt update && sudo apt dist-upgradeและหลังจากนั้นก็เริ่มการติดตั้ง nginx เท่านั้น

ที่สำคัญ! โดเมนท้องถิ่นทั้งหมดไม่ได้ลงทะเบียนในไฟล์ /etc/hosts ของการแจกจ่าย Linux (ไม่มีด้วยซ้ำ) แต่ในไฟล์โฮสต์ (โดยปกติจะอยู่ที่ C:WindowsSystem32driversetchosts) ของ Windows 10

แหล่งที่มา

คุณสามารถดูคำอธิบายโดยละเอียดเพิ่มเติมของแต่ละขั้นตอนได้ที่นี่:

ที่มา: will.com

เพิ่มความคิดเห็น