Docker คืออะไร
Docker คือ เครื่องมือแบบ Open Source ตัวหนึ่งที่มีการทำงานในลักษณะจำลองสภาพแวดล้อมขึ้นมาบนเครื่อง server เพื่อใช้ในการ run service ที่ต้องการ มีการทำงานคล้ายคลึงกับ Virtual Machine เช่น VMWare, VirtualBox, XEN, KVM แต่ข้อแตกต่างที่ชัดเจนคือ Virtual Machine ที่รู้จักกันก่อนหน้านี้นั้น เป็นการจำลองทั้ง OS เพื่อใช้งานและหากต้องการใช้งาน service ใดๆ จึงทำการติดตั้งเพิ่มเติมบน OS นั้นๆ แต่สำหรับ docker แล้วจะใช้ container ในการจำลองสภาพแวดล้อมขึ้นมา เพื่อใช้งานสำหรับ 1 service ที่ต้องการใช้งานเท่านั้น โดยไม่ต้องมีส่วนของ OS เข้าไปเกี่ยวข้องเหมือน Virtual Machines อื่นๆ
ความน่าสนใจของ Docker
- Docker engine สามารถใช้งานได้บนหลาย platform ทั้งบน Linux, Mac และ Windows
- Docker มีขนาดเล็ก สามารถใช้งาน และติดตั้งได้อย่างรวดเร็ว และสะดวกในการ start / stop หรือแม้แต่การย้ายไปใช้งานสำหรับเครื่อง server อื่นที่มีการ run docker engine ก็สามารถทำได้โดยไม่ซับซ้อน
- ผู้ใช้งาน docker ไม่จำเป็นต้องติดตั้ง OS อีกครั้งเพื่อติดตั้ง container รวมทั้งไม่จำเป็นต้อง config เพิ่มเติมในส่วนที่ไม่จำเป็นอีกด้วย
- Docker มีความต้องการในการใช้ CPU, RAM และพื้นที่น้อยกว่า Virtual Machine ทั้งนี้ในทรัพยากรที่มีเท่ากัน docker สามารถใช้งาน container ได้มากกว่า Virtual Machine
- เนื่องจากผู้ใช้งาน สามารถสร้าง docker image ได้เอง จาก dockerfile ดังนั้นการใช้งาน docker ยังช่วยลดปัญหาสภาพแวดล้อมที่ต่างกัน ที่มักพบเมื่อบาง application สามารถทำงานได้บน development server แต่ไม่สามารถใช้งานบน production server ได้
- Docker ยังมี docker registry ซึ้งผู้ใช้งานสามารถเลือก pull image ต่างๆ ที่มีการสร้างไว้ให้แล้วมาใช้งาน โดยมี Docker Hub เป็น registry หลักในการเรียกใช้ image
ข้อดีของ Docker เมื่อเทียบกับ Virtual Machine
- Docker ไม่ต้องเสียเวลาในสร้าง OS ใหม่ และการ config แต่ละ OS เลย
- Docker เบาและเร็วกว่ามาก ไม่ว่าจะเป็น start stop และ restart เพราะมันใช้ OS, CPU และ RAM ร่วมกันกับ Host OS
- Docker สามารถรัน container ได้มากกว่า VMs ในเครื่องที่มีทรัพยากรที่เท่ากัน
- Docker มีระบบ Registry ทำให้สามารถเคลื่อนย้าย หรือติดตั้ง Container ได้สะดวก และรวดเร็วกว่ามาก
- Containers มันรันอยู่บน Docker Engine ทำให้ไม่ต้องสนใจว่า Infrastructure หรือ Host OS ว่าจะเป็นอะไรยังไง ทำให้หมดปัญหาว่าเครื่อง Dev รันได้ แต่เครื่อง Production มันรันไม่ได้บ้าง หรือเครื่อง Dev แต่ละคนติดตั้งเครื่องมือคนละเวอร์ชันกัน เราก็ build container เป็น image แล้วส่งในคนในทีมใช้ ก็หมดปัญหาแล้ว
การติดตั้ง Docker บนระบบปฏิบัติการ Windows
ความต้องการขั้นต่ำของระบบ
- ระบบปฏิบัติการ Windows 10 Pro, Enterprise, หรือ Education อย่างใดอย่างหนึ่ง แต่ต้องเป็นเวอร์ชัน 64 bit เท่านั้น
- RAM 4GB ขึ้นไป
- เครื่องคอมพิวเตอร์ต้องเปิด Virtualization เรียบร้อยแล้ว
ขั้นตอนการติดตั้ง
1. เปิดคุณสมบัติ Virtualization บน BIOS ซึ่งเครื่องคอมพิวเตอร์แต่ละเครื่องจะมีหน้าจอและเมนูคำสั่งในการเปิด Virtualization ไม่เหมือนกัน
2. คลิกที่ Start -> Windows System -> Run หรือกดปุ่ม Windows + R
3. พิมพ์คำว่า powershell เพื่อเรียกใช้โปรแกรม PowerShell แล้วกดปุ่ม OK ก็จะเข้าสู่หน้าจอดังรูป
4. พิมพ์คำสั่ง start-process powershell -verb runas แล้วกดปุ่ม Enter เพื่อเปิดโปรแกรม PowerShell Run as Administrator
5. จากนั้นจะมีหน้าจอ Windows PowerShell as an administrator ขึ้นมาอีกหนึ่งหน้าจอ ดังรูป
6. ไปที่หน้าจอ Windows PowerShell as an administrator พิมพ์คำสั่งเพื่อทำการเปิดใช้งาน Windows Subsystem for Linux (WSL) ดังนี้
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
7. ที่หน้าจอเดียวกันนี้ ให้พิมพ์คำสั่งเพื่อเปิดใช้งานคุณสมบัติ Virtual Machine ดังนี้
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
เสร็จแล้วให้ restart เครื่องใหม่
8. เปิดใช้งาน Hyper-V บน Windows 10 ดูรายละเอียดการเปิดใช้งานได้ที่ https://km.cc.swu.ac.th/archives/1039
9. ดาวน์โหลด Linux Kernel Update Package โดยไปที่เว็บไซต์ https://docs.microsoft.com/en-us/windows/wsl/install-manual แล้วคลิกที่ลิงค์ตามรูปภาพด้านล่าง พร้อมทั้งทำการติดตั้ง
10. ทำซ้ำตั้งแต่ขั้นตอนที่ 2 จนถึงขั้นตอนที่ 5 เพื่อเปิดหน้าจอ PowerShell Run as Administrator
11. พิมพ์คำสั่งเพื่อกำหนดเวอร์ชัน default ของ Windows Subsystem for Linux เป็น 2 ดังนี้
wsl –set-default-version 2
12. เข้าไปที่ Microsoft Store โดยเลือกคำสั่ง Start -> Microsoft Store
13. พิมพ์คำว่า linux ในช่องค้นหา แล้วกดปุ่ม Enter หน้าจอ Microsoft Store ก็จะมีหน้าตาดังรูป
14. เลือก Linux distribution ที่ต้องการติดตั้ง ในที่นี้ เลือกติดตั้ง Ubuntu 20.04 LTS
15. ดาวน์โหลด Ubuntu มาติดตั้งบนเครื่องโดยคลิกที่ปุ่ม Get
16. เมื่อดาวน์โหลดเสร็จแล้ว ให้กดปุ่ม Open ดังรูป
17. หลังจากนั้นก็จะเข้าสู่หน้าจอ Command Prompt ของโปรแกรม Ubuntu ให้ทำการสร้าง Username และ Password ให้เรียบร้อย ดังรูป
18. เข้าไปที่เว็บไซต์ https://docs.docker.com/desktop/windows/install/ แล้วคลิกที่ปุ่มตามรูปภาพด้านล่าง เพื่อดาวน์โหลดตัวติดตั้ง Docker
19. Double-Click ที่ไฟล์ตัวติดตั้ง Docker ก็จะเข้าสู่หน้าจอดังรูป
20. ให้คลิกปุ่ม OK โปรแกรมก็จะทำการติดตั้งไฟล์ที่จำเป็นต่างๆจนเสร็จสมบูรณ์
21. เมื่อติดตั้งเสร็จเรียบร้อยแล้ว ให้ Double-Click ที่ไอคอน Docker Desktop ก็จะเข้าสู่หน้าจอดังรูป
22. ให้ติ๊กถูกหลังข้อความ I accept the terms แล้วคลิกปุ่ม Accept เพื่อยอมรับข้อตกลงในการใช้โปรแกรม พร้อมทั้งเข้าสู่หน้าจอดังรูป
23. ไปที่เมนู Settings -> General
24. เมื่อตัวเลือก Use the WSL 2 based engine มีเครื่องหมายถูกอยู่แล้ว ให้ข้ามหน้าจอนี้ได้เลย
25. ไปที่เมนู Settings -> Resources -> WSL Integration
26. ติ๊กเลือก Enable integration with my default WSL distro และเลือก distributions เป็น Ubuntu
27. คลิกปุ่ม Apply & Restart
28. ทำซ้ำตามขั้นตอนที่ 2 ถึง ขั้นตอนที่ 5 เพื่อเปิดหน้าจอ PowerShell Run as administrator
29. พิมพ์คำสั่ง docker run -d -p 80:80 docker/getting-started
30. เสร็จแล้วเปิดโปรแกรมเว็บบราวเซอร์ขึ้นมา แล้วพิมพ์ URL เป็น https://localhost
31. เมื่อหน้าจอเว็บบราวเซอร์ขึ้นมาดังรูป ก็เป็นอันเสร็จสิ้นการติดตั้ง Docker บนระบบปฏิบัติการ Windows