Docker เป็นแพลตฟอร์มสำหรับการทำ containerization — คือการแพ็กแอปพลิเคชันรวมกับ dependency ทั้งหมดให้อยู่ใน container ที่พกพาได้และทำงานได้สม่ำเสมอในทุกที่ มันช่วยแก้ปัญหาคลาสสิกอย่าง "it works on my machine" ด้วยการทำให้สภาพแวดล้อมสามารถสร้างซ้ำได้
ปัญหา: สภาพแวดล้อมไม่สอดคล้องกัน
WITHOUT containers:
→ an app works on the developer's machine but fails in test/production
→ different OS, library versions, configs, missing dependencies → "works on my machine"
→ setting up environments is manual, error-prone, and inconsistent
