รูปปกบทความ

1. 🎯 ตอนที่ 4: การติดตั้งและเตรียมความพร้อมก่อนลุย Docker

สวัสดีครับน้องๆ วันนี้พี่ขอวางแก้วกาแฟแล้วมาจับเมาส์พาลุยของจริงกันบ้าง! หลังจากที่เราปูพื้นฐานทฤษฎีกันมาพอสมควรแล้ว ตอนนี้ก็ถึงเวลาที่เราจะ “สร้างห้องครัว” ของเราให้พร้อมสำหรับการปรุง Container กันแล้วครับ

2. 📖 เปิดฉาก (The Hook)

เวลาที่เราจะทำอาหาร ต่อให้มีสูตรระดับมิชลินสตาร์ (Dockerfile) หรือมีวัตถุดิบชั้นเลิศ (Source Code) แต่ถ้าเตาแก๊สไม่ติด หรือไม่มีกระทะ… ทุกอย่างก็จบ! การเขียนโปรแกรมก็เหมือนกันครับ หลายครั้งที่เรามักจะตกม้าตายตั้งแต่ขั้นตอน “การเตรียม Environment” พยายามลงโปรแกรมสารพัดจนเครื่องพัง สุดท้ายก็กลับไปสู่ลูปเดิมคือ “It works on my machine” (แต่พังบนเครื่องเพื่อน)

เพื่อตัดปัญหาความวุ่นวายนี้ Docker จึงออกเครื่องมือที่ชื่อว่า Docker Desktop ซึ่งเปรียบเสมือนห้องครัวสำเร็จรูป ยกมาตั้งที่บ้านปุ๊บ พร้อมทำอาหารได้เลย ไม่ว่าน้องๆ จะใช้ Windows, Mac หรือ Linux เราก็สามารถมีสภาพแวดล้อมที่เหมือนกันเป๊ะๆ ได้ครับ มาลุยกันเลย!

3. 🧠 แก่นวิชา (Core Concepts)

สำหรับการเริ่มต้นใช้งานบนเครื่อง Local (แล็ปท็อปของน้องๆ) เครื่องมือที่เราจะใช้คือ Docker Desktop ซึ่งเป็นชุดเครื่องมือสำเร็จรูปที่รวมเอา Docker Engine (ตัวพ่อครัว), Docker CLI (พนักงานรับออเดอร์) และเครื่องมือเสริมอื่นๆ มาให้ครบจบในคลิกเดียว

วิธีการติดตั้งแยกตามระบบปฏิบัติการมีดังนี้ครับ:

🍎 สำหรับ macOS

  • โหลดตัวติดตั้งจากหน้าเว็บ Docker โดยต้องเลือกให้ตรงกับชิปของเครื่องเรา (Intel หรือ Apple Silicon/ARM)
  • เปิดไฟล์ .dmg แล้วลากไอคอน Docker ใส่โฟลเดอร์ Applications
  • สิ่งที่ต้องรู้: ลึกๆ แล้ว macOS ไม่สามารถรัน Linux Container ได้โดยตรง Docker Desktop จะแอบสร้าง Linux Virtual Machine (VM) ขนาดเล็กมากๆ ไว้หลังบ้านให้เราอัตโนมัติ

🪟 สำหรับ Windows (Windows 10/11)

  • เงื่อนไขสำคัญ: ต้องเข้าไปเปิดระบบ Hardware Virtualization (VT-x หรือ AMD-V) ใน BIOS ของคอมพิวเตอร์ก่อน
  • โหลดตัวติดตั้ง .exe จากเว็บรันตามปกติ แนะนำให้ติ๊กเลือกใช้งาน WSL 2 (Windows Subsystem for Linux) แทน Hyper-V แบบเก่า เพราะ WSL 2 กินทรัพยากรน้อยกว่า บูตเร็วกว่า และทำงานร่วมกับ Windows ได้เนียนกว่ามาก
  • เมื่อติดตั้งเสร็จ เครื่องอาจจะขอ Restart 1 รอบ

🐧 สำหรับ Linux (เช่น Ubuntu)

  • นี่คือบ้านเกิดแท้ๆ ของ Docker ครับ รันได้แบบ Native ไม่ต้องมี VM มาคั่น
  • รันสคริปต์บรรทัดเดียวจบ: curl -fsSL https://get.docker.com | sh
  • ข้อควรระวัง: โดยปกติคำสั่ง docker จะต้องใช้สิทธิ์ root (ต้องพิมพ์ sudo นำหน้าตลอด) เพื่อความสะดวก ให้เพิ่ม User ของเราเข้าไปในกลุ่ม docker ครับ

🛠️ อาวุธคู่กาย: Code Editor นอกจากตัว Docker แล้ว พี่แนะนำให้ติดตั้ง Visual Studio Code (VS Code) พร้อมกับ Extensions เหล่านี้ครับ:

  1. Docker (จาก Microsoft): ช่วยทำ Syntax Highlighting เวลาเขียน Dockerfile และมีปุ่มให้คลิกจัดการ Container ได้ง่ายๆ
  2. Remote Development: มีประโยชน์มากเวลาเราอยากจะรัน Environment ทั้งหมดเพื่อเขียนโค้ด “เข้าไปใน Container” โดยตรง
รูปประกอบการติดตั้ง Docker Desktop และ VS Code

4. 💻 ร่ายมนต์คำสั่ง (Show me the Code/Commands)

เมื่อติดตั้งเสร็จแล้ว เปิดโปรแกรม Docker Desktop ขึ้นมา (รอจนไอคอนปลาวาฬนิ่ง หรือขึ้นว่า Engine running) จากนั้นเปิด Terminal (หรือ PowerShell) แล้วลองพิมพ์คำสั่งทดสอบตามนี้ครับ:

# 1. ทดสอบเช็กเวอร์ชัน เพื่อดูว่า Client และ Server (Daemon) คุยกันรู้เรื่องไหม
docker version

# 2. พิสูจน์ความขลังด้วยประโยคคลาสสิก (รันคอนเทนเนอร์ตัวแรกในชีวิต!)
docker run hello-world

อธิบายคอมเมนต์สไตล์พี่สอนน้อง: เมื่อน้องๆ รันคำสั่ง docker run hello-world สิ่งที่เกิดขึ้นคือ:

  1. Docker Client จะส่งคำสั่งไปหา Docker Daemon
  2. Daemon จะเช็กว่ามี Image ชื่อ hello-world อยู่ในเครื่องไหม ถ้าไม่มี มันจะวิ่งไปดาวน์โหลด (Pull) มาจาก Docker Hub ให้ทันที
  3. จากนั้นนำ Image มาสตาร์ทเป็น Container
  4. โปรแกรมข้างในรันคำสั่งปริ้นท์ข้อความ “Hello from Docker!” ออกมาที่หน้าจอของเรา แล้วก็ปิดตัวเองลงอย่างสมบูรณ์

5. 🛡️ เคล็ดลับจากคัมภีร์ลับ (Under the Hood / Pro-Tips)

พี่มีทริคลับๆ สำหรับคนเพิ่งติดตั้งเสร็จมาฝากครับ:

  • Linux Users (ลดความรำคาญเรื่อง sudo): อย่างที่เกริ่นไป ถ้าไม่อยากพิมพ์ sudo docker... ทุกครั้ง ให้รันคำสั่ง sudo usermod -aG docker $USER จากนั้น Log out แล้ว Log in เข้าคอมพิวเตอร์ใหม่ 1 รอบครับ (คำเตือน: การให้สิทธิ์กลุ่ม docker เทียบเท่ากับการให้สิทธิ์ root กับระบบ ต้องระวังเวลาใช้งานบน Production Server นะครับ)
  • ปรับ Limit ทรัพยากร (Mac/Windows): บางครั้ง Docker Desktop อาจจะกิน RAM มากเกินไป น้องๆ สามารถกดที่ไอคอนฟันเฟือง (Settings) -> Resources แล้วปรับลด/เพิ่ม จำนวน CPU และ Memory (RAM) ที่จะอนุญาตให้ Docker ใช้งานได้ครับ
  • การจัดการพื้นที่ (Disk Space): Docker โหลด Image มาเก็บไว้เรื่อยๆ พื้นที่ดิสก์อาจจะเต็มได้ ถ้ารู้สึกเครื่องหนักๆ ลองใช้คำสั่ง docker system df เพื่อดูว่าเราใช้พื้นที่ไปเท่าไหร่แล้ว

6. 🏁 บทสรุป (To be continued…)

ยินดีด้วยครับ! ถ้าน้องๆ เห็นข้อความ “Hello from Docker!” แสดงว่าตอนนี้ห้องครัวของเราพร้อมแล้ว เตาแก๊สทำงานปกติ เครื่องมือทุกอย่างเซ็ตอัปเสร็จเรียบร้อย

ในตอนต่อไป เราจะเริ่มเข้าครัวของจริง พี่จะสอนวิธีการเขียน “สูตรอาหาร” ด้วยการสร้างไฟล์ Dockerfile เพื่อแพ็กแอปพลิเคชันของเราเองลงไปใน Container เตรียมตัวสนุกไปกับการ Build Image ด้วยฝีมือตัวเองกันได้เลยครับ!


ต้องการที่ปรึกษาด้านการวางระบบ Infrastructure, DevOps และ CI/CD ให้กับองค์กรของคุณ? ทีมงาน WP Solution พร้อมให้บริการออกแบบและวางระบบ Server/Cloud แบบครบวงจร ดูรายละเอียดบริการของเราได้ที่: www.wpsolution2017.com หรือพูดคุยปรึกษาเบื้องต้นได้ที่ Line: wisit.p