สารบัญ
- จุดเริ่มต้น 5 นาทีสู่ Docker บน Windows 11
- เช็กไลต์ก่อนเริ่ม: พีซี Windows 11 ของคุณพร้อมสำหรับ Docker หรือยัง
- พื้นฐาน: การติดตั้ง Windows Subsystem for Linux (WSL 2)
- ไฮไลต์หลัก: การติดตั้ง Docker Desktop
- ออกตัว! การตรวจสอบและคอนเทนเนอร์จริงตัวแรกของคุณ
- ชุดคำสั่ง Docker ที่จำเป็นสำหรับคุณ
- การแก้ไขปัญหา: คู่มือสำหรับข้อผิดพลาดทั่วไปในการติดตั้ง & การรัน
- คำถามที่พบบ่อย 1: ทำไมฉันจึงเจอข้อผิดพลาด “Unexpected WSL error”?
- คำถามที่พบบ่อย 2: Docker Desktop ไม่ยอมเริ่มทำงานหลังจากที่ฉันปิดมันหรือรีสตาร์ตเครื่อง มีอะไรผิดพลาด?
- คำถามที่พบบ่อย 3: ตัวติดตั้งแจ้งว่า “แอปนี้ไม่สามารถทำงานบนพีซีของคุณได้” จะแก้ไขอย่างไร?
- คำถามที่พบบ่อย 4: การติดตั้งของฉันล้มเหลวพร้อมข้อผิดพลาดเกี่ยวกับการจำลองเสมือนหรือ WSL
- คำถามที่พบบ่อย 5: ฉันกำลังเจอข้อผิดพลาด “permission denied” หรือ “daemon is not running” เมื่อรันคำสั่ง docker
- บทสรุป: การเดินทางกับ Docker ของคุณเริ่มต้นที่นี่
จุดเริ่มต้น 5 นาทีสู่ Docker บน Windows 11
Docker is an open platform that has fundamentally changed modern software development. It leverages containerization to package applications and their dependencies into lightweight, isolated, and portable units called containers. เทคโนโลยีนี้แก้ปัญหา “it works on my machine” ที่พบเจอบ่อยและน่าหงุดหงิดได้อย่างกลมกล่อม โดยทำให้แอปทำงานสม่ำเสมอในสภาพแวดล้อมการพัฒนา การทดสอบ และโปรดักชัน เมื่ออ่านคู่มือฉบับสมบูรณ์นี้จบ นักพัฒนาหรือคนที่ชื่นชอบเทคโนโลยีทุกคนจะมีสภาพแวดล้อม Docker ที่ใช้งานได้เต็มรูปแบบบนพีซี Windows 11 พร้อมสร้าง แชร์ และรันแอปแบบคอนเทนเนอร์ได้อย่างมั่นใจ
คำว่า “5 นาที” ในหัวข้อหมายถึงเวลาที่ผู้ใช้ลงมือติดตั้งและรันคำสั่งจริงเท่านั้น ควรตั้งความคาดหวังให้สมจริง: ช่วงเวลาที่ต้องรอเฉยๆ ทั้งการดาวน์โหลดซอฟต์แวร์ การรีบูตระบบ และการตั้งค่า Windows Subsystem for Linux (WSL) ครั้งแรกเพียงครั้งเดียว ไม่ได้นับรวมอยู่ในเวลานี้ คู่มือนี้จัดโครงสร้างให้ขั้นตอนที่ลงมือทำรวดเร็วและไม่มีข้อผิดพลาดมากที่สุด โดยจัดการข้อกำหนดเบื้องต้นให้ครบถ้วนตั้งแต่ต้น
รายงานนี้จะให้แผนที่การเดินทางที่ครบถ้วนสำหรับขั้นตอนการติดตั้ง เริ่มจากเช็กไลต์ข้อกำหนดของระบบที่สำคัญ ต่อไปยังการติดตั้ง WSL 2 และ Docker Desktop ครอบคลุมการตรวจสอบการตั้งค่า และปิดท้ายด้วยการเปิดคอนเทนเนอร์ Nginx เว็บเซิร์ฟเวอร์ที่ใช้งานได้จริง
ก่อนอื่น ควรทำความเข้าใจแนวคิดหลักของ Docker สักสองสามข้อ ดังนี้ อิมเมจ คือพิมพ์เขียวหรือเทมเพลตแบบอ่านอย่างเดียว ซึ่งบรรจุโค้ดของแอป รันไทม์ เครื่องมือของระบบ และไลบรารีที่จำเป็นทั้งหมด A
คอนเทนเนอร์ คืออินสแตนซ์ที่ทำงานอยู่จริงของอิมเมจ เป็นสภาพแวดล้อมที่แยกตัวเองได้และเป็นที่ที่แอปทำงาน
Docker Desktop คือแอปสำหรับ Windows ที่ติดตั้งง่าย ซึ่งรวม Docker Engine (บริการเบื้องหลังหลัก หรือดีมอน) ส่วนติดต่อคอมมานด์ไลน์ (CLI) ที่ใช้สั่งงาน และเครื่องมือสำคัญอื่นๆ ไว้ในแพ็กเกจเดียวที่ใช้งานง่าย ประโยชน์หลักของระบบนิเวศนี้คือความสม่ำเสมอที่ได้มา ซึ่งเร่งเวิร์กโฟลว์การพัฒนาอย่างมากและลดบักที่เกิดจากสภาพแวดล้อม
เช็กไลต์ก่อนเริ่ม: พีซี Windows 11 ของคุณพร้อมสำหรับ Docker หรือยัง
การอุทิศเวลาเพียงไม่กี่นาทีให้กับรายการตรวจสอบก่อนเริ่มนี้เป็นขั้นตอนเดียวที่สำคัญที่สุดเพื่อให้การติดตั้งราบรื่นและรวดเร็ว ส่วนนี้ออกแบบมาเพื่อจัดการจุดที่ล้มเหลวบ่อยที่สุดล่วงหน้า และป้องกันการเสียเวลาหลายชั่วโมงในการแก้ไขข้อความข้อผิดพลาดที่อ่านไม่เข้าใจในภายหลัง การติดตั้งที่ล้มเหลวจำนวนมากไม่ได้เกิดจาก Docker เอง แต่มาจากความผิดพลาดในการกำหนดค่าระบบพื้นฐานที่ต่อเนื่องกันหลายชั้น ตัวอย่างเช่น การปิดการตั้งค่าการเสมือนในเฟิร์มแวร์ของคอมพิวเตอร์จะทำให้ Windows Subsystem for Linux (WSL 2) ทำงานไม่ถูกต้อง ซึ่งจะทำให้การติดตั้ง Docker Desktop ล้มเหลวพร้อมข้อผิดพลาดคลุมเครืออย่าง “Unexpected WSL error” หรือ “This app can’t run on your PC” รายการตรวจสอบนี้ตัดวงจรความล้มเหลวดังกล่าวก่อนที่จะเริ่มต้น เปลี่ยนประสบการณ์ที่อาจน่าหงุดหงิดให้เป็นเรื่องตรงไปตรงมา เช็กลิสต์นี้ตัดวงจรของความล้มเหลวก่อนที่จะเริ่ม เพื่อเปลี่ยนประสบการณ์ที่อาจน่าหงุดหงิดให้กลายเป็นเรื่องง่าย
เจาะลึกข้อกำหนดของระบบ
ก่อนดำเนินการ จำเป็นต้องยืนยันว่าเครื่องโฮสต์ตรงตามข้อกำหนดอย่างเป็นทางการของ Docker Desktop บน Windows 11 ข้อกำหนดล่าสุดมีดังนี้ :
- ระบบปฏิบัติการ: ต้องใช้ Windows 11 เวอร์ชัน 64 บิต ซึ่งอาจเป็นรุ่น Home, Pro, Enterprise หรือ Education แนะนำอย่างยิ่งให้ใช้เวอร์ชัน 22H2 ขึ้นไปเพื่อความเข้ากันได้และประสิทธิภาพที่ดีที่สุด
- โปรเซสเซอร์: ระบบต้องมีโปรเซสเซอร์ 64 บิตที่รองรับ Second Level Address Translation (SLAT) CPU สมัยใหม่เกือบทั้งหมดที่ผลิตในช่วงสิบปีที่ผ่านมามีคุณสมบัตินี้
- RAM: ต้องมี RAM ของระบบอย่างน้อย 4GB อย่างไรก็ตาม เพื่อประสบการณ์ที่ลื่นไหลและตอบสนองไว แนะนำอย่างยิ่งให้มี RAM 8GB ขึ้นไปทั้ง Docker Desktop และคอนเทนเนอร์ที่มันรันจะกินหน่วยความจำ และ 4GB อาจกลายเป็นคอขวดสำคัญระหว่างการพัฒนา
ขั้นตอนสำคัญที่สุด: เปิดใช้งานการจำลองเสมือนด้วยฮาร์ดแวร์
Docker on Windows does not run applications natively; it relies on hardware virtualization to run a lightweight Linux kernel through WSL 2. If this feature is disabled in the system’s BIOS/UEFI, Docker Desktop cannot function.
วิธีตรวจสอบว่าเปิดใช้งาน Virtualization อยู่หรือไม่
คุณตรวจสอบได้อย่างรวดเร็วโดยไม่ต้องรีบูตระบบ:
- กด
Ctrl + Shift + Escเพื่อเปิด Windows Task Manager - ไปที่แท็บ Performance .
- เลือก CPU จากแผงด้านซ้าย
- ทางด้านขวา ให้มองหาสถานะ Virtualization หากแสดงว่า เปิดใช้งานก็ไม่ต้องดำเนินการใด ๆ เพิ่มในขั้นนี้ หากแสดงว่า Disabledคุณต้องเปิดใช้งานในการตั้งค่า BIOS/UEFI ก่อนดำเนินการต่อ
วิธีเปิดใช้งาน Virtualization ใน BIOS/UEFI
การเปิดใช้งาน virtualization ต้องรีบูตคอมพิวเตอร์และเข้าสู่การตั้งค่าเฟิร์มแวร์ ขั้นตอนอาจแตกต่างกันไปตามผู้ผลิตคอมพิวเตอร์ แต่กระบวนการโดยรวมเหมือนกัน
วิธีที่ใช้กันในปัจจุบันในการเข้าถึงการตั้งค่าเฟิร์มแวร์ UEFI บน Windows 11 มีดังนี้ :
- เปิดแอป การตั้งค่า แล้วไปที่ ระบบจากนั้นเลือก Recovery.
- ในส่วน “Advanced startup” ให้คลิกที่ Restart now .
- คอมพิวเตอร์จะรีบูตเข้าสู่ Windows Recovery Environment จากตรงนั้นให้เลือก Troubleshoot > Advanced options > UEFI Firmware Settings แล้วคลิก Restart.
อีกวิธีหนึ่งคือวิธีดั้งเดิม ซึ่งต้องกดปุ่มเฉพาะระหว่างลำดับการบูตครั้งแรก ปุ่มที่ถูกต้องขึ้นอยู่กับผู้ผลิต
เมื่ออยู่ในเมนู BIOS/UEFI แล้ว การตั้งค่า virtualization มักอยู่ในแท็บ “Advanced,” “CPU Configuration,” หรือ “Security” ตัวเลือกนี้จะมีชื่อว่า Intel Virtualization Technology (VT-x), AMD-V, หรือ SVM Mode. ต้องเปลี่ยนการตั้งค่านี้เป็น
เปิดใช้งานหลังจากเปิดใช้งานแล้ว สิ่งสำคัญคือต้องบันทึกการเปลี่ยนแปลงและออกจาก BIOS/UEFI ซึ่งจะทำให้คอมพิวเตอร์รีบูต
เพื่อช่วยในขั้นตอนนี้ ตารางต่อไปนี้แสดงปุ่มเข้าถึง BIOS/UEFI ที่พบบ่อยสำหรับผู้ผลิตพีซีรายใหญ่
| ผู้ผลิต | ปุ่มที่พบบ่อย | |
| Dell | F2, F12 | |
| HP | Esc, F10 | |
| Lenovo | F1, F2, Fn+F2 | |
| ASUS | F2, Del | |
| MSI / Gigabyte | Del | |
| ตารางที่ 1: ปุ่มเข้าถึง BIOS/UEFI ที่ใช้กันบ่อยแยกตามผู้ผลิต รวบรวมจากคู่มือผู้ใช้และเอกสารสนับสนุน |
พื้นฐาน: การติดตั้ง Windows Subsystem for Linux (WSL 2)
เมื่อยืนยันข้อกำหนดเบื้องต้นเรียบร้อยแล้ว ขั้นตอนต่อไปคือการติดตั้งรากฐานที่ Docker จะทำงานอยู่บนนั้น นั่นคือ Windows Subsystem for Linux เวอร์ชัน 2 (WSL 2) Docker Desktop ใช้ WSL 2 เป็นแบ็กเอนด์เพื่อรันคอนเทนเนอร์ Linux บน Windows โดยตรง ให้ประสิทธิภาพใกล้เคียงระบบจริง เริ่มทำงานได้เร็วขึ้น และผสานรวมกับระบบไฟล์ได้ดีกว่าแบ็กเอนด์ Hyper-V แบบเดิม
ติดตั้งด้วยคำสั่งเดียว
Microsoft ได้ปรับการติดตั้ง WSL 2 ให้เหลือเพียงคำสั่งเดียวที่ทรงพลัง
- เปิด Windows PowerShell หรือ Command Prompt ด้วยสิทธิ์ระดับผู้ดูแลระบบ โดยคลิกขวาที่ไอคอนในเมนู Start แล้วเลือก Run as administrator.
- รันคำสั่งต่อไปนี้ : ตัวอย่างโค้ด
wsl --install
คำสั่งเดียวนี้ทำงานอัตโนมัติหลายขั้นตอนที่แต่ก่อนต้องทำด้วยมือ ช่วยเปิดใช้ฟีเจอร์ที่จำเป็นอย่าง “Virtual Machine Platform” และ “Windows Subsystem for Linux” ดาวน์โหลดเคอร์เนล Linux ล่าสุดจาก Microsoft ตั้ง WSL 2 เป็นเวอร์ชันเริ่มต้น และติดตั้งดิสทริบิวชัน Ubuntu ของ Linux ให้เป็นค่าเริ่มต้น
รีบูตและตั้งค่าหลังการติดตั้ง
หลังจากคำสั่งทำงานเสร็จ ต้องรีบูตระบบเพื่อให้การติดตั้งฟีเจอร์ใหม่ของ Windows สมบูรณ์เมื่อรีสตาร์ตแล้ว หน้าต่างคอนโซลของ Ubuntu จะเปิดขึ้นอัตโนมัติเพื่อทำการตั้งค่าเริ่มต้นให้เสร็จ ขั้นตอนนี้รวมถึงการสร้างชื่อผู้ใช้และรหัสผ่าน UNIX ใหม่ สิ่งสำคัญคือข้อมูลรับรองเหล่านี้ใช้สำหรับสภาพแวดล้อม Linux และแยกจากข้อมูลเข้าสู่ระบบ Windows มาตรฐานโดยสิ้นเชิง
ไฮไลต์หลัก: การติดตั้ง Docker Desktop
เมื่อ WSL 2 พร้อมแล้ว ระบบก็พร้อมสำหรับการติดตั้ง Docker Desktop ขั้นหลัก
ดาวน์โหลดตัวติดตั้งที่ถูกต้อง
ควรดาวน์โหลดตัวติดตั้งอย่างเป็นทางการจากเว็บไซต์ Docker โดยตรง เพื่อยืนยันความถูกต้องและได้เวอร์ชันล่าสุด
รายละเอียดสำคัญที่มักถูกมองข้ามคือสถาปัตยกรรมของระบบ ตัวติดตั้งสำหรับโปรเซสเซอร์ Intel และ AMD ทั่วไปคือไฟล์ x86_64 (or AMD64) เวอร์ชัน ฟอรัมชุมชนเต็มไปด้วยรายงานจากผู้ใช้ที่เจอข้อผิดพลาด “แอปนี้ไม่สามารถทำงานบนพีซีของคุณได้” ทันที เพราะเผลอดาวน์โหลดตัวติดตั้ง ARM64 ซึ่งมีไว้สำหรับอุปกรณ์อย่าง Surface Pro X อินเทอร์เฟซผู้ใช้ของหน้าดาวน์โหลดอาจทำให้สับสนได้ในบางครั้ง จึงจำเป็นอย่างยิ่งที่จะต้องตรวจสอบซ้ำว่ากำลังดาวน์โหลดเวอร์ชันที่ถูกต้อง
ขั้นตอนการติดตั้ง
- ค้นหาไฟล์
Docker Desktop Installer.exeที่ดาวน์โหลดมา - ดับเบิลคลิกตัวติดตั้งเพื่อเรียกใช้งาน โปรแกรมจะขอสิทธิ์ผู้ดูแลระบบ ซึ่งจำเป็นสำหรับการติดตั้ง
- หน้าจอการตั้งค่าหลักมีการเลือกที่สำคัญ ตรวจสอบให้แน่ใจว่า “Use WSL 2 instead of Hyper-V”ตัวเลือกนี้ถูกเลือกอยู่ การตั้งค่านี้ทำให้ Docker ใช้แบ็กเอนด์ที่ทันสมัยและเป็นตัวเลือกที่แนะนำเพื่อประสิทธิภาพสูงสุด ส่วนตัวเลือกในการเพิ่มทางลัดบนเดสก์ท็อปนั้นขึ้นอยู่กับความชอบของผู้ใช้
สิทธิ์หลังการติดตั้ง (กลุ่ม docker-users )
แม้สิทธิ์ผู้ดูแลระบบจำเป็นสำหรับการติดตั้ง แต่ไม่จำเป็นสำหรับการใช้ Docker ในชีวิตประจำวัน อย่างไรก็ตาม บัญชีผู้ใช้มาตรฐาน (ที่ไม่ใช่ผู้ดูแลระบบ) จะสื่อสารกับ Docker daemon ได้ก็ต่อเมื่อถูกเพิ่มเข้า docker-users กลุ่มความปลอดภัยภายในเครื่อง ซึ่งถูกสร้างขึ้นระหว่างการติดตั้ง
วิธีเพิ่มผู้ใช้เข้ากลุ่มนี้:
- เปิดแอป Computer Management เครื่องมือนี้หาได้จากการค้นหาในเมนู Start และต้องเรียกใช้ในฐานะผู้ดูแลระบบ
- ในบานหน้าต่างด้านซ้าย ไปที่ Local Users and Groups > Groups.
- ค้นหาแล้วคลิกขวาที่ docker-users แล้วเลือก Add to Group….
- คลิกปุ่ม Add… แล้วพิมพ์ชื่อบัญชีผู้ใช้ที่จะให้สิทธิ์เข้าถึง Docker จากนั้นคลิก OK.
- หลังจากเพิ่มผู้ใช้แล้ว จำเป็นอย่างยิ่งที่จะต้อง ออกจากระบบ Windows แล้วลงชื่อเข้าใช้อีกครั้งขั้นตอนนี้จำเป็นเพื่อให้การเป็นสมาชิกกลุ่มใหม่มีผล การรีบูตเฉย ๆ ไม่เพียงพอเสมอไป
ออกตัว! การตรวจสอบและคอนเทนเนอร์จริงตัวแรกของคุณ
เมื่อตั้งค่าและกำหนดค่าเสร็จแล้ว ถึงเวลาตรวจสอบการติดตั้งและเปิดคอนเทนเนอร์ ส่วนนี้ยืนยันว่าองค์ประกอบทั้งหมดทำงานร่วมกันอย่างถูกต้อง และให้ผลลัพธ์ที่จับต้องได้
การจับมือผ่านคอมมานด์ไลน์
เปิดเทอร์มินัล PowerShell หรือ Command Prompt ใหม่ หากบัญชีผู้ใช้ถูกเพิ่มเข้า docker-users กลุ่มนี้ เทอร์มินัลนี้ ไม่ควร ถูกเรียกใช้ในฐานะผู้ดูแลระบบ เพื่อทดสอบว่าสิทธิ์ทำงานถูกต้อง
ก่อนอื่น ตรวจสอบว่า Docker CLI สื่อสารกับ Docker daemon ได้โดยดูเวอร์ชัน:
ตัวอย่างโค้ด
docker --version
คำสั่งนี้ควรแสดงเวอร์ชันของ Docker ที่ติดตั้งไว้ ตัวอย่างเช่น Docker version 25.0.3, build 4debf41.
จากนั้นรันคำสั่งเพื่อแสดงรายการคอนเทนเนอร์ที่กำลังทำงาน:
ตัวอย่างโค้ด
docker ps
เนื่องจากยังไม่มีคอนเทนเนอร์ใดทำงานอยู่ คำสั่งนี้จึงควรคืนค่าตารางว่างที่มีเพียงหัวคอลัมน์ (CONTAINER ID, IMAGE ฯลฯ) การตอบกลับว่างที่สำเร็จนี้ยืนยันว่า CLI เชื่อมต่อกับ Docker Engine ได้อย่างถูกต้อง
พิธีกรรม “Hello World”
ขั้นตอนแรกแบบดั้งเดิมในโลกของ Docker คือการรัน hello-world อิมเมจ ซึ่งถือเป็นการทดสอบระบบทั้งหมดอย่างชัดเจน
ตัวอย่างโค้ด
docker run hello-world
คำสั่งนี้ดำเนินการหลายอย่าง โดยจะตรวจสอบว่า hello-world อิมเมจในเครื่อง จะดาวน์โหลดจากที่เก็บอิมเมจ Docker Hub หากไม่พบ สร้างคอนเทนเนอร์ใหม่จากอิมเมจนั้น รันคอนเทนเนอร์ และแสดงข้อความยืนยันในเทอร์มินัลก่อนจะออก การรันที่สำเร็จจะแสดงข้อความที่ขึ้นต้นด้วย “Hello from Docker!”
การใช้งานจริง: เปิด Nginx เว็บเซิร์ฟเวอร์
ในขณะที่ hello-world ยืนยันว่าระบบทำงาน แต่ไม่ได้แสดงการใช้งานจริง ขั้นตอนแรกที่น่าสนใจและให้ความรู้มากกว่าคือการเปิดเว็บเซิร์ฟเวอร์จริง ซึ่งจะแนะนำแนวคิดหลักอย่างการแมปพอร์ตและโหมดแยกตัว ให้ผลลัพธ์แบบโต้ตอบที่ช่วยเสริมความเข้าใจ วิธีนี้เชื่อมช่องว่างจากการตรวจสอบการติดตั้งง่าย ๆ ไปสู่การใช้งานจริง
หากต้องการเปิดคอนเทนเนอร์เว็บเซิร์ฟเวอร์ Nginx ให้รันคำสั่งต่อไปนี้:
ตัวอย่างโค้ด
docker run -d -p 8080:80 --name my-web-server nginx
แต่ละส่วนของคำสั่งนี้มีหน้าที่เฉพาะ:
docker run: คำสั่งหลักสำหรับสร้างและเริ่มคอนเทนเนอร์ใหม่-dหรือ--detach: รันคอนเทนเนอร์ในเบื้องหลัง เพื่อให้เทอร์มินัลว่างสำหรับคำสั่งอื่น-p 8080:80หรือ--publish 8080:80: แมปพอร์ต 8080 บนเครื่องโฮสต์ (พีซี) ไปยังพอร์ต 80 ภายในคอนเทนเนอร์ Nginx ฟังพอร์ต 80 โดยค่าเริ่มต้น ดังนั้นจึงทำให้เข้าถึงได้จากเบราว์เซอร์ของโฮสต์--name my-web-server: กำหนดชื่อที่อ่านเข้าใจง่ายให้คอนเทนเนอร์เพื่อให้จัดการได้ง่ายขึ้นnginx: ระบุอิมเมจ Nginx อย่างเป็นทางการที่จะใช้ ซึ่ง Docker จะดึงมาจาก Docker Hub
เพื่อตรวจสอบว่าเว็บเซิร์ฟเวอร์ทำงานอยู่ ให้เปิดเว็บเบราว์เซอร์และไปยังที่อยู่ http://localhost:8080. ควรแสดงหน้า “Welcome to nginx!” ซึ่งยืนยันว่าคอนเทนเนอร์กำลังทำงานและเข้าถึงได้
สำหรับการสาธิตที่ทรงพลังยิ่งขึ้น สามารถปรับแต่งหน้าเริ่มต้นได้โดยใช้ bind mount ซึ่งเชื่อมไดเรกทอรีบนเครื่องโฮสต์เข้าไปในระบบไฟล์ของคอนเทนเนอร์โดยตรง
- ขั้นแรก หยุดและลบคอนเทนเนอร์ที่มีอยู่:
docker stop my-web-serverตามด้วยdocker rm my-web-server. - สร้างโฟลเดอร์ใหม่บนเดสก์ท็อปชื่อ
my-site. - ภายในโฟลเดอร์นี้ ให้สร้างไฟล์ข้อความใหม่ชื่อ
index.html. - เปิด
index.htmlแล้วเพิ่มเนื้อหาต่อไปนี้:<h1>สวัสดีจากคอนเทนเนอร์ Docker ตัวแรกของผม!</h1>. - ตอนนี้ ให้รันคอนเทนเนอร์ใหม่พร้อมโวลุ่ม (
-v) เพื่อเมานต์ไดเรกทอรีในเครื่อง พาธต้องเป็นพาธแบบสัมบูรณ์ โค้ดตัวอย่างdocker run -d -p 8080:80 --name my-web-server -v C:\Users\YourUsername\Desktop\my-site:/usr/share/nginx/html nginx(แทนที่YourUsernameด้วยชื่อผู้ใช้ Windows จริง) - รีเฟรชเบราว์เซอร์ที่
http://localhost:8080. ตอนนี้จะแสดงข้อความที่กำหนดเอง “Hello from my first Docker container!” ซึ่งแสดงให้เห็นถึงประสิทธิภาพของการเมานต์แบบ bind สำหรับการพัฒนาสด
ชุดคำสั่ง Docker ที่จำเป็นสำหรับคุณ
เมื่อคอนเทนเนอร์ทำงานอยู่ จำเป็นต้องใช้คำสั่งสำคัญบางคำสั่งเพื่อจัดการคอนเทนเนอร์ หัวข้อนี้ทำหน้าที่เป็นชีตสรุปสำหรับอ้างอิงด่วนเกี่ยวกับการดำเนินการ Docker ในชีวิตประจำวันซึ่งพบบ่อยที่สุด เพื่อให้ผู้ใช้สามารถโต้ตอบและควบคุมสภาพแวดล้อมคอนเทนเนอร์ใหม่ของตนได้ทันที
| คำสั่ง | คำอธิบาย | ตัวอย่างการใช้งาน | |
docker ps | แสดงรายการคอนเทนเนอร์ทั้งหมดที่กำลังทำงานอยู่ | docker ps | |
docker ps -a | แสดงรายการคอนเทนเนอร์ทั้งหมด รวมถึงคอนเทนเนอร์ที่หยุดแล้ว | docker ps -a | |
docker stop <name_or_id> | หยุดคอนเทนเนอร์ที่กำลังทำงานอย่างนุ่มนวล | docker stop my-web-server | |
docker start <name_or_id> | เริ่มคอนเทนเนอร์ที่เคยหยุดไว้ก่อนหน้านี้ | docker start my-web-server | |
docker rm <name_or_id> | ลบ คอนเทนเนอร์ที่หยุดแล้ว อย่างถาวร | docker rm my-web-server | |
docker images | แสดงรายการอิมเมจ Docker ทั้งหมดที่จัดเก็บไว้ในเครื่อง | docker images | |
docker rmi <image_name> | ลบอิมเมจภายในเครื่อง (เฉพาะเมื่อไม่มีคอนเทนเนอร์ใดใช้งานอยู่) | docker rmi nginx | |
docker logs <name_or_id> | ดึงบันทึกเอาต์พุตมาตรฐานจากคอนเทนเนอร์ | docker logs my-web-server | |
docker logs -f <name_or_id> | ติดตามเอาต์พุตบันทึกแบบเรียลไทม์ โดยสตรีมบันทึกใหม่เข้ามา | docker logs -f my-web-server | |
docker exec -it <name> <cmd> | รันคำสั่งภายในคอนเทนเนอร์ที่กำลังทำงานอยู่ (เช่น เปิดเชลล์) | docker exec -it my-web-server bash | |
| ตารางที่ 2: รายการคำสั่ง Docker ที่จำเป็นสำหรับผู้เริ่มต้น |
การแก้ไขปัญหา: คู่มือสำหรับข้อผิดพลาดทั่วไปในการติดตั้ง & การรัน
แม้จะเตรียมการมาอย่างรอบคอบ ปัญหาก็ยังเกิดขึ้นได้ ส่วนนี้ทำหน้าที่เป็นชุดปฐมพยาบาล คอยจัดการกับข้อผิดพลาดระหว่างการติดตั้งและการทำงานที่พบบ่อยที่สุด คำถามเหล่านี้ถูกเรียบเรียงให้ตรงกับข้อความแสดงข้อผิดพลาดจริงที่ผู้ใช้น่าจะค้นหา ทำให้คู่มือนี้เป็นแหล่งอ้างอิงที่มีค่าระหว่างการแก้ไขปัญหา
คำถามที่พบบ่อย 1: ทำไมฉันจึงเจอข้อผิดพลาด “Unexpected WSL error”?
- อาการ: Docker Desktop เปิดไม่สำเร็จและแสดงหน้าต่างป๊อปอัปพร้อมข้อผิดพลาดนี้ ซึ่งมักระบุถึงปัญหาสิทธิ์การเข้าถึงหรือแนะนำให้
wsl --shutdownคำสั่งนี้ - วิธีแก้ไข: ควรลองทำตามลำดับนี้
- รีเซ็ตแบบง่าย: เปิด PowerShell แล้วรัน
wsl --shutdown. คำสั่งนี้จะหยุดเครื่องเสมือน WSL 2 อย่างสมบูรณ์ รอสักครู่แล้วลองรีสตาร์ต Docker Desktop อีกครั้ง วิธีนี้มักแก้ปัญหาสถานะชั่วคราวได้ - รีเซ็ตเน็ตเวิร์กสแต็ก: หากยังพบปัญหา อาจเกิดจากความเสียหายในเน็ตเวิร์กสแต็กของ Windows ที่ใช้สื่อสารกับ WSL เปิด PowerShell ในฐานะผู้ดูแลระบบแล้วรัน
netsh winsock reset. ต้องรีบูตระบบหลังจากรันคำสั่งนี้ - ตรวจสอบประเภทการเปิดไฮเปอร์ไวเซอร์: ตรวจสอบว่าไฮเปอร์ไวเซอร์ของ Windows ตั้งค่าให้เริ่มทำงานอัตโนมัติ เปิด PowerShell ในฐานะผู้ดูแลระบบแล้วรัน
bcdedit /set hypervisorlaunchtype Auto, แล้วรีบูต - วงจรเปิดใช้งานใหม่ทั้งหมด: เป็นทางเลือกสุดท้าย คุณสามารถติดตั้งองค์ประกอบเวอร์ชวลไลเซชันใหม่ทั้งหมดได้ ใน PowerShell ในฐานะผู้ดูแลระบบ ให้รันคำสั่งต่อไปนี้เพื่อปิดฟีเจอร์:
DISM /Online /disable-Feature /FeatureName:VirtualMachinePlatformDISM /Online /disable-Feature /FeatureName:Microsoft-Windows-Subsystem-Linuxรีบูตคอมพิวเตอร์ จากนั้นเปิด PowerShell ในฐานะผู้ดูแลระบบอีกหน้าต่างแล้วเปิดใช้งานฟีเจอร์เหล่านั้นอีกครั้ง:DISM /Online /enable-Feature /FeatureName:Microsoft-Windows-Subsystem-LinuxDISM /Online /enable-Feature /FeatureName:VirtualMachinePlatformรีบูตอีกครั้งเป็นครั้งสุดท้าย
- รีเซ็ตแบบง่าย: เปิด PowerShell แล้วรัน
คำถามที่พบบ่อย 2: Docker Desktop ไม่ยอมเริ่มทำงานหลังจากที่ฉันปิดมันหรือรีสตาร์ตเครื่อง มีอะไรผิดพลาด?
- อาการ: แอปทำงานได้ดีหลังการติดตั้งครั้งแรก แต่ตอนนี้กลับเปิดไม่ขึ้น ไอคอน Docker อาจปรากฏในถาดระบบแล้วหายไป หรือไม่มีอะไรเกิดขึ้นเลย
- วิธีแก้ไข: ปัญหานี้มักเกิดจากโพรเซสเบื้องหลังที่ค้างอยู่และไม่ได้ปิดตัวลงอย่างถูกต้อง
- เปิด ตัวจัดการงาน (
Ctrl + Shift + Esc). - ไปที่แท็บ รายละเอียด .
- เรียงตามชื่อแล้วมองหาโพรเซสที่ชื่อ
Docker Desktop.exeหรือโพรเซสที่เกี่ยวข้องกับแบ็กเอนด์ของ Docker - เลือกโพรเซสเหล่านี้ทีละตัวแล้วคลิก สิ้นสุดงาน.
- เมื่อโพรเซสที่เกี่ยวข้องทั้งหมดถูกปิดแล้ว ให้ลองเปิด Docker Desktop อีกครั้ง
- เปิด ตัวจัดการงาน (
คำถามที่พบบ่อย 3: ตัวติดตั้งแจ้งว่า “แอปนี้ไม่สามารถทำงานบนพีซีของคุณได้” จะแก้ไขอย่างไร?
- อาการ: กรณี
Docker Desktop Installer.exeล้มเหลวทันทีเมื่อรัน พร้อมข้อความข้อผิดพลาดทั่วไปของ Windows นี้ - วิธีแก้ไข:
- สาเหตุหลัก: สาเหตุที่พบบ่อยที่สุดของข้อผิดพลาดนี้คือสถาปัตยกรรมไม่ตรงกัน คุณอาจดาวน์โหลดตัวติดตั้ง ARM64 สำหรับพีซีทั่วไปที่ใช้โปรเซสเซอร์ Intel หรือ AMD มาแล้ว กลับไปที่เว็บไซต์ทางการของ Docker และตรวจสอบว่าได้ดาวน์โหลดเวอร์ชัน x86_64 / AMD64 มาแล้วหรือยัง
- สาเหตุรอง: หากใช้ตัวติดตั้งที่ถูกต้อง ข้อผิดพลาดนี้แสดงว่าข้อกำหนดพื้นฐานของระบบยังไม่ครบ กลับไปที่หัวข้อ 1 ของคู่มือนี้และตรวจสอบว่าเปิดฮาร์ดแวร์เวอร์ชวลไลเซชันใน BIOS/UEFI แล้ว
คำถามที่พบบ่อย 4: การติดตั้งของฉันล้มเหลวพร้อมข้อผิดพลาดเกี่ยวกับการจำลองเสมือนหรือ WSL
- อาการ: ตัวติดตั้งแสดงข้อความข้อผิดพลาด เช่น “WSL 2 installation is incomplete,” “Docker Desktop requires a WSL 2 backend,” หรือข้อความอื่นที่ระบุถึงเวอร์ชวลไลเซชันอย่างชัดเจน
- วิธีแก้ไข: นี่เป็นสัญญาณชัดเจนว่ามีข้อกำหนดที่ถูกข้ามไปหรือกำหนดค่าไว้ไม่ถูกต้อง
- รีบูตและเข้า BIOS/UEFI เพื่อตรวจสอบว่า Intel VT-x หรือ AMD-V เปิดใช้งานอยู่ เปิดใช้งาน. นี่คือจุดที่ล้มเหลวบ่อยที่สุด
- ตรวจสอบให้แน่ใจว่าเปิดคุณสมบัติ “Virtual Machine Platform” ของ Windows ไว้แล้ว เพื่อความแน่ใจ ให้รัน
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestartใน PowerShell ที่รันด้วยสิทธิ์ผู้ดูแลระบบ แล้วรีสตาร์ตเครื่อง
คำถามที่พบบ่อย 5: ฉันกำลังเจอข้อผิดพลาด “permission denied” หรือ “daemon is not running” เมื่อรัน dockerคำสั่ง
- อาการ: ในเทอร์มินัลที่ไม่ใช่ผู้ดูแลระบบ คำสั่งอย่าง
docker psจะล้มเหลวพร้อมข้อผิดพลาดที่ระบุว่าไคลเอนต์ไม่สามารถเชื่อมต่อกับ Docker daemon ได้ - วิธีแก้ไข: นี่คือปัญหาสิทธิ์ที่พบบ่อย
- ตรวจสอบว่าบัญชีผู้ใช้ปัจจุบันเป็นสมาชิกของ
docker-usersกลุ่มภายในเครื่อง ตามที่อธิบายไว้ในหัวข้อที่ 3 - ที่สำคัญ ผู้ใช้ต้อง ออกจากระบบ Windows แล้วลงชื่อเข้าใช้อีกครั้ง เพื่อให้การเปลี่ยนแปลงสมาชิกกลุ่มมีผลกับโทเค็นความปลอดภัยของผู้ใช้ การรีสตาร์ตเครื่องหรือเพียงปิดแล้วเปิดเทอร์มินัลใหม่ไม่เพียงพอ
- ตรวจสอบว่าบัญชีผู้ใช้ปัจจุบันเป็นสมาชิกของ
บทสรุป: การเดินทางกับ Docker ของคุณเริ่มต้นที่นี่
เมื่อทำตามคู่มือนี้ ผู้ใช้จะเตรียมระบบ Windows 11 ได้สำเร็จ ติดตั้งข้อกำหนดเบื้องต้นที่จำเป็นเช่น WSL 2 ติดตั้งและกำหนดค่า Docker Desktop ตรวจสอบการติดตั้งทั้งหมด และเปิดคอนเทนเนอร์ Nginx จริง ความสำเร็จนี้มอบพื้นฐานที่ทรงพลังและมั่นคงสำหรับการพัฒนาซอฟต์แวร์สมัยใหม่
เมื่อมีสภาพแวดล้อม Docker ที่ใช้งานได้ การเดินทางสู่การใช้งานคอนเทนเนอร์ก็เริ่มต้นขึ้นจริง ๆ ขั้นตอนถัดไปที่สมเหตุสมผลเพื่อต่อยอดจากพื้นฐานนี้ ได้แก่:
- การเรียนรู้ Docker Compose: สำหรับแอปที่ประกอบด้วยหลายบริการ (เช่น เว็บแอป ฐานข้อมูล และเลเยอร์แคช) Docker Compose คือเครื่องมือมาตรฐาน ช่วยให้กำหนดและจัดการสแต็กแอปหลายคอนเทนเนอร์ทั้งหมดได้ด้วยไฟล์กำหนดค่า YAML ไฟล์เดียว ทำให้การดีพลอยที่ซับซ้อนเหลือเพียงคำสั่งเดียว
- การเขียน Dockerfile: พลังที่แท้จริงของ Docker จะเกิดขึ้นเมื่อแพ็กเกจแอปที่กำหนดเอง ขั้นตอนถัดไปคือการเรียนรู้วิธีเขียน
Dockerfile, ซึ่งเป็นไฟล์ข้อความที่มีคำแนะนำทีละขั้นตอนสำหรับการสร้างอิมเมจ Docker ที่กำหนดเองจากซอร์สโค้ดของแอป - การสำรวจ Docker Hub: Docker Hub เป็นรีจิสทรีสาธารณะขนาดใหญ่ที่รวบรวมอิมเมจที่สร้างไว้ล่วงหน้าหลายพันรายการสำหรับแอปและบริการต่าง ๆ ถือเป็นแหล่งข้อมูลที่มีค่ามากสำหรับการค้นหาอิมเมจทางการ และยังเป็นแพลตฟอร์มสำหรับแบ่งปันอิมเมจที่สร้างขึ้นเองกับชุมชนหรือทีมส่วนตัว
