ทำความรู้จัก Docker ฉบับนักพัฒนาเว็บ ตอนที่ 1


Oct 12, 2018 / มีผู้อ่าน 23

 

Docker คือ Software Container ที่ออกแบบมาให้ใช้งานง่าย มากๆ จึงเป็นที่นิยมกันแพร่หลายในปัจจุบัน ในหมู่ Developer, System Admin, DevOps และอื่นๆ 
.
ก่อนจะไปรู้จักกับ Docker เรามาทำความรู้จักกับ Software Container กันก่อนครับ
.
Software Container คือ อะไร ?
.
Software Container ถูกสร้างและออกแบบมาเพื่อสร้างสภาพแวดล้อมให้ แอพพลิเคชั่น ของเราทำงาน โดยไม่ไปกวนกับ แอพพลิเคชั่นตัวอื่น ที่อยู่บนระบบปฎิบัติการเดียวกัน (OS) 
.
ตัวอย่างเช่น แอพของเราเขียนด้วย Node.js Version 10 แต่บนเครื่อง Server จริง ลง Node.js Version 8 ไว้เนื่องจากแอพอื่นๆ ที่เคยเขียนไว้ก่อนหน้านั่นเขียนบน Version 8 ทั้งหมด แต่ด้วยต้องประหยัดงบประมาณ เลยต้องใช้เครื่อง Server เครื่องเดียวกัน 
.
ถามว่าแล้วทำไม ตอนแรกก่อนจะเขียน ไม่เขียนด้วย Node.js Version 8 ละ 
1. ตอนพัฒนา เราไม่รู้ว่า Server จริง มันลง Version ไหน ไว้ (เกิดบ่อย เพราะไม่ได้ Set เครื่องเอง โถววชีวิต)
2. อยากใช้ ความสามารถของ Version ใหม่ๆ (แน่นอนของใหม่มันก็ต้องดีกว่า)
3. ต้องการทดสอบเปรียบเทียบกันระหว่าง 2 Version
.
โอกาสที่แอพของเราจะทำงานผิดพลาดมีแน่นอน ดังนั้นจะดีกว่าไหม ถ้ามีสภาพแวดล้อมที่แอพพลิเคชั่นของเราทำงานได้ โดยไม่ไปกวนกับแอพอื่น 
หรือในอนาคตเราจะย้ายแอพไป Server เครื่องอื่นก็ไม่ต้องกังวล ไม่ต้องนั่งแก้โค้ดให้รองรับ Version ใน เครื่องนั่นๆ 
.
ที่ผ่านมามี Software Container อยู่หลายตัว แต่ก็ยังไม่แพร่หลายเพราะ ความยุ่งยากในการใช้งาน เช่น LXC (Linux Container), Solaris Containers, OpenVZ จนมาถึงยุคของ Docker ความง่ายของมันทำให้ Software Container นั้นกลับมา บูม อีกครั้ง 
.
ความแตกต่างระหว่าง Container และ Visual Machine 
.
Container จะติดตั้งซอฟแวร์ และ services ต่างๆ เพื่อสร้างสภาพแวดล้อมเท่าที่เราใช้เฉพาะงาน 
.
ส่วน Virtual Machine จะมาทั้ง OS ดังนั่นเมื่อเป็น Container ขนาดและทรัพยากรที่ใช้จะลดลงอย่างมาก
.
ชักอยากลอง Docker กันหรือยัง ไว้มาต่อกันตอนต่อไปครับ


หมวดหมู่บทความ

บทความ