Docker คือ “Software Container”
Docker คือ อะไร Docker นั้นถือเป็นหนึ่งใน “Software Container” ที่เป็นการสร้าง “สภาพแวดล้อมเฉพาะ” ให้กับซอฟต์แวร์ต่าง ๆ และทำให้ซอฟต์แวร์เหล่านั้น สามารถทำงานได้โดยไม่ไปรบกวนกับซอฟต์แวร์ตัวอื่น ในระบบปฏิบัติการเดียวกัน โดยคุณสามารถนำ Container ไปติดตั้งบนคอมพิวเตอร์หรือเซิร์ฟเวอร์เครื่องอื่น ๆ ได้เลยทันที โดยที่โปรแกรมในนั้นยังทำงานได้ตามปกติ ไม่ผิดเพี้ยนไปจากเดิม
ยกตัวอย่างง่าย ๆ … เช่น ตอนที่คุณเขียนเว็บไซต์ขึ้นมาบนเครื่องของคุณเอง คุณสามารถปรับเปลี่ยน Setting ค่าต่าง ๆ หรือดาวน์โหลดอะไรมาติดตั้งเพิ่มอีกมากมาย เมื่อต้องการนำไปขึ้น Production บน Server ต้องทำการโยกเอาก้อนทั้งหมดนั้นไป ทำให้ต้องเสียเวลาทำ Config ทุกอย่างบน Server ใหม่อีกครั้ง และบางทีระหว่างดำเนินการอาจเกิดข้อผิดพลาด ข้อมูลไม่ครบ ไฟล์หาย ข้อมูลตีกัน ทำให้เสียเวลากลับไปค้นหาว่าเกิดปัญหาตรงส่วนไหน รวมถึงต้องแก้ไขอะไรบ้าง เพียงเท่านี้ก็ทำให้คุณรู้สึกเหนื่อยแล้วใช้มั้ย ?
หยุด ! วงจรชีวิตยาก ๆ ด้วย Docker
การใช้ “Docker” เข้ามาช่วยในการแพ็ค Software เหล่านี้ เพื่อให้อยู่ในรูปแบบของ Container หลังจากนั้น คุณสามารถนำ Container ไปรันบนเครื่องไหนก็ได้ โดย Application ของคุณยังทำงานได้ปกติ ไม่ว่าจะนำไปรันบนเครื่อง Development หรือบน Production Server ไหนก็ตาม
เสกงาน 1 วัน ให้เหลือแค่ 1 ชั่วโมงด้วย
ในปัจจุบันมีผู้ให้บริการ Software Container ให้เลือกใช้บริการมากมาย แต่ Docker ได้รับความนิยมมากที่สุด เพราะใช้งานได้ง่าย ด้วย 3 Steps Build, Ship and Run ที่มีประสิทธิภาพสูง แถมยังมี Community ใหญ่มาก ทำให้มี Q&A มากมายตามมาในภายหลัง เมื่อคุณพบปัญหาอะไรก็ไม่ต้องลอยเคว้งคว้างกลางทะเลอยู่คนเดียว
(Build) Dockerfile : คือการที่นำ Sourcecode + Config ที่รวบรวมคำสั่งทุกอย่าง ที่ใช้ในการ Run แอป และนำไปสร้างเป็นไฟล์ Docker Image
(Ship) Docker Image : คือไฟล์ Image ของ Application ที่สร้างมาจาก Dockerfile โดยสามารถนำ Image ไปรันบนเครื่องไหนก็ได้ที่มี Docker
(Run) Docker Container : เป็น Container ที่มี Application ตาม Image ที่ติดตั้งไว้ และสามารถเรียกใช้งาน Application ได้โดยง่าย
ประโยชน์ที่ได้จากการใช้ Docker
(1) Save Time : สามารถลงโปรแกรมเพื่อใช้งาน ได้ภายในไม่กี่วินาทีเท่านั้น
(2) Save Cost : ประหยัดค่าใช้จ่ายมากขึ้นเพราะใช้ทรัพยากรน้อยลง
(3) Save Data Storage : ประหยัดพื้นที่เก็บ และติดตั้งระบบได้รวดเร็วกว่าการทำ VM ถึง 90%
(4) Easy to Scale : สามารถขยายระบบได้ง่าย เพื่อรองรับจำนวนผู้ใช้งานที่มากขึ้น และยังสามารถดึง Resource ของเครื่องมาใช้ได้เต็มประสิทธิภาพ ซึ่งต่างกับ VM ที่มักจะติดขีดจำกัดของเครื่อง
(5) Environment Managing : ด้วยรูปแบบที่เป็น Image สำเร็จรูป ทำให้เราสามารถติดตั้งโปรแกรม หรือตั้งค่าระบบ ได้ภายในเวลาไม่กี่วินาที และเพียงแค่ไม่กี่คำสั่งเท่านั้น
(6) Portability : ทำให้ย้ายไประบบ IT infrastructure อื่น ๆ ได้ง่าย ไม่ต้องเสียเวลา Setup โปรแกรมใหม่ทีละเครื่อง และช่วยลด Error ที่อาจเกิดจาก การนำระบบขึ้น Production
(7) Reduce Time-to-Market : ช่วยลดเวลาการนำแอปพลิเคชันต่าง ๆ เข้าสู่ตลาด
(8) Community Hub : ได้รับการพัฒนาและอัปเดตฟีเจอร์ใหม่เรื่อย ๆ มี Community สำหรับแลกเปลี่ยนข้อมูลต่าง ๆ มากมาย
ใครที่เหมาะกับการใช้ Docker ?
เนื่องจากการใช้ Container Software ไม่ใช่เรื่องยากหรือไกลตัวอีกต่อไป การนำมาใช้ ล้วนมีแต่ข้อดีและเป็นประโยชน์ ดังนั้นจึงไม่ใช่แค่เรื่องของ Developer หรือ System Admin อีกต่อไป แต่องค์กรเองต้องเข้าใจและเห็นความสำคัญของเทคโนโลยีนี้เช่นกัน
เริ่มศึกษายังไงดี ?
การศึกษา Docker สามารถหาข้อมูลได้ทั่วไปตามอินเตอร์เน็ต แต่การศึกษาและนำมาใช้งานอย่างถูกต้องและปลอดภัยนั้น ต้องใช้เวลาทำความเข้าใจพอสมควร แต่หากใครยังสงสัย ว่าการใช้งาน Docker ต่างกับ VM แบบเดิม ๆ ที่ใช้งานอย่างไร แล้วอยากเริ่มต้นด้วยตนเองง่าย ๆ OpenLandscape Cloud ขอแนะนำวิธีศึกษาการใช้งานเบื้องต้นด้วยการดาวน์โหลด E-Book ที่ทาง Docker ได้จัดทำไว้ได้เลยที่นี่
โดยเนื้อหาใน E-Book จะประกอบไปด้วย
- ทำไม Container ถึงไม่ใช่ VM
- เราสามารถนำ Container และ VM มาใช้ร่วมกันได้อย่างไร
- การใช้ Container บน Physical Server และ Virtual Machine นั้นแตกต่างกันอย่างไร
- เริ่มต้นใช้งาน Docker และ Container