ประสบการณ์การใช้ Docker ( part 1 )
ก่อนอื่นต้องบอกว่าผมทำงานด้านการพัตนาระบบหรือเขียนเว็บไซด์ ด้วยภาษาต่างๆอยู่ แรกๆ ผมก็อาศัยการ โปรแกรมจำลอง web server ต่างๆ ที่มีใช้อยู่ทั่วไป ไม่ว่าจะ เป็น Xampp , Wamp , Mamp
ขั้นตอนการ เขียนโค้ดของผมก่อนหน้านี้จะเป็นดังนี้
Dev
- ติดตั้ง โปรแกรมจำลอง web server ที่กล่าวไป
- นำโค้ดไว้ใน htdoc
- ดาต้าเบส ในกรณีนี้ส่วนใหญ่จะมากับโปรแกรมอยู่แล้ว
Production ( Ubuntu Server )
- ติดตั้ง Apache , Nginx , …
- ติดตั้ง Database
- นำโค้ดเข้าโดย git
- ทั้งหมดเป็น ในคำสั่ง linux ทั้งหมด
แค่นี้อะนะ แล้วมันยากตรงไหน ?
- ครับ เท่านี้แหละ
แล้วทำไมต้องใช้ Docker ละ ?
สมมุติว่า ตอนนี้ผมกำลังทำ โปรเจคหนึ่งเป็นเว็บโดยใช้ PHP 7.3 แต่ว่าอยู่ๆ มีงานเข้ามาอีกตัวนึง และ โปรเจคที่แทรกเข้ามา ดันใช้ PHP 5.4 จะเกิดอะไรขึ้นละ
- ครับ!! งานเข้าสิครับ
สิ่งที่ผมต้องทำคือผมต้องลบ PHP 7.3เพื่อที่ผมต้องไป ทำงานตัวที่แทรกมานี้เมื่อทำเสร็จ ก็ต้องกลับมาลง PHP 7.3 เพื่อที่กลับมาทำงานเดิมต่ออีก ถ้ายังคิดว่ายังไม่เท่าไร ลองนึกภาพว่า ผมกำลังทำ Database ที่ใช้เป็นละ version กันอีกละทำไงดี
อ่าหหห์ หรือจะไปใช้ VMWare ดีละ ( พบทางสว่างแล้วววว )
แล้วถ้าวันนึงมันมีงานแบบนี้เข้ามาอีกละทำไงดี สร้าง Vm ไปเรื่อยๆงี้หรอ ความจุของคอมเรา ram เรา ก็ไม่ได้เยอะขนาดนั้นนิ
ครับ !!! สั้นๆ บรรเทิงสิครับ
เพราะงี้แหละฮะ ผมถึงไปเจอ และได้รู้จักสิ่งที่เรียกว่าาาาาาาา
Docker !!!!!!!!!
Docker คืออะไร
Docker คือ engine ตัวหนึ่งที่มีการทำงานในลักษณะจำลองสภาพแวดล้อมขึ้นมาบนเครื่อง server เพื่อใช้ในการ run service ที่ต้องการ มีการทำงานคล้ายคลึงกับ Virtual Machine
เอ้า ! แล้วมันต่างจาก พวก VMWARE หรือ VirtualBox ยังไงอะ
Virtual Machine ที่รู้จักกันก่อนหน้านี้นั้น เป็นการจำลองทั้ง OS เพื่อใช้งานและหากต้องการใช้งาน service ใดๆ จึงทำการติดตั้งเพิ่มเติมบน OS นั้นๆ แต่สำหรับ docker แล้วจะใช้ container ในการจำลองสภาพแวดล้อมขึ้นมา เพื่อใช้งานสำหรับ 1 service ที่ต้องการใช้งานเท่านั้น โดยไม่ต้องมีส่วนของ OS เข้าไปเกี่ยวข้องเหมือน Virtual Machines อื่นๆ ตัวอย่างดังรูป
นั้นละฮะ ผมก็ไม่เข้าใจมันหรอก 5555
- หยอก ๆ ถถถถ
สรุป Part แรกก่อนนะ ว่าทำไมถึงมาใช้ Docker
จากปัญหาที่ผมกล่าวไป เอ่อออ~ สรุปไงดีอะ ยังงี้ละกัน
การใช้ Docker ที่ผ่านมา ผมคิดว่า เป็น Tool ที่น่าสนใจและควรจะใช้ในการพัฒนาระบบหรือเว็บไซด์ของเรา เพื่อความสะดวกสบายของเรา และทีมของเรา ช่วงแรกอาจจะยากหน่อยในการคิดและวางแผนในขั้นตอน Dev มากขึ้น แต่เชื่อเถอะครับ
ทีเดียวจบ !! เราไม่จำเป็นต้องไป Config : web server หรือ database ต่างๆ ตอน นำโค้ด สู่ Server อีก
อาจจะงงๆ แต่ก็งงๆนะ ไว้มาเขียน part การใช้อีกที 55555