บทนำและแนวคิด — ภาพรวมโมดูล
ทำไมต้องใช้ Docker?
หัวข้อที่มีชื่อว่า “ทำไมต้องใช้ Docker?”นักพัฒนาทุกคนเคยได้ยิน: “ทำงานได้บนเครื่องฉัน” application ทำงานได้อย่างสมบูรณ์ในระหว่างการพัฒนา แต่พังใน environment staging หรือ production เพราะ OS ที่ต่างกัน เวอร์ชัน library ที่ไม่ตรงกัน หรือ environment variable ที่ขาดหายไป Docker กำจัดช่องว่างนั้นด้วยการบรรจุ application ของคุณพร้อมกับทุกสิ่งที่จำเป็น ไม่ว่าจะเป็น runtime, dependencies, และการกำหนดค่า ลงใน unit ที่พกพาได้หน่วยเดียวที่เรียกว่า container
ด้วย Docker คุณจะได้รับ:
- environment ที่สม่ำเสมอ — container ทำงานเหมือนกันทุกประการบนแล็ปท็อป, CI server, และ cloud VM
- การแยกส่วน (Isolation) — แต่ละ container มี filesystem และ process space เป็นของตัวเอง ดังนั้น application จึงไม่รบกวนกัน
- ความเร็ว — container เริ่มต้นในหน่วยมิลลิวินาที ไม่ใช่นาที
- ความสามารถในการทำซ้ำ —
Dockerfileคือสูตรที่แม่นยำ ใครก็ตามที่ build จะได้ image เดียวกัน
สิ่งที่โมดูลนี้ครอบคลุม
หัวข้อที่มีชื่อว่า “สิ่งที่โมดูลนี้ครอบคลุม”| บทเรียน | สิ่งที่จะเรียนรู้ |
|---|---|
| หน้านี้ | ปัญหาที่ Docker แก้ไข, container แรกของคุณ |
| Docker คืออะไร? | สถาปัตยกรรม: client, daemon, images, registries |
| Containers กับ VMs | การแชร์ kernel, isolation แบบเบา, เมื่อใดควรใช้อะไร |
| ติดตั้งและตรวจสอบ | การติดตั้ง Docker, ตรวจสอบการติดตั้ง |
| Container แรกของคุณ | Interactive + detached containers, docker ps, docker stop |
Container แรกของคุณ
หัวข้อที่มีชื่อว่า “Container แรกของคุณ”วิธีที่เร็วที่สุดในการยืนยันว่า Docker ทำงานได้ และเพื่อดูว่าเกิดอะไรขึ้นเมื่อคุณรัน container คือการใช้ image hello-world อย่างเป็นทางการ Docker จะดึง image จาก Docker Hub หากยังไม่มีใน cache ในเครื่อง จากนั้นเริ่ม container, พิมพ์ข้อความยืนยัน, และออก
docker run hello-worldลองทำตอนนี้โดยใช้ playground แบบโต้ตอบด้านล่าง:
docker run hello-world