ประโยชน์ของการเรียกใช้ Base OS เดียวในทุก Docker image

DevOps Sep 06, 2019

ในการ Build docker image เราจำเป็นตัองเลือกใช้งาน Base OS ก่อนซึ่งมันมีหลากหลายมากให้เลือกใช้ เช่น CentOS, Debian หรือ Alpine เป็นต้น แล้วแต่ความถนัดของแต่ละคนว่าชอบตัวไหน หรือเป็นสาวกตัวไหน

ผมแนะนำว่าในโปรเจ็คของเรา ไม่ว่าจะมีกี่ services ควรเลือกใช้งาน Base OS ที่เหมือนกัน เรามาดูว่าประโยชน์กันว่ามันจะช่วยเราเรื่องอะไร

สมมติเรามี 3 services

  • MySQL
  • Nodejs
  • Redis

ประหยัดเนื้อที่

ถ้าเราเลือก Alpine เป็น Base OS ของทั้ง 3 services ก็จะทำให้เวลาเรา Build มันจะทำการ Pull image ลงมา 1 image แล้วทั้ง 3 services ของเราก็จะเรียกใช้งานแค่ตัวนี้ ทำให้ประหยัดเนื้อที่ของเครื่องไปมาก เพราะเนื้อที่ของแต่ละ Base OS ก็มีขนาดต่างกัน โดย Alpine จะเล็กมาก ส่วนใหญ่ผมจะเลือก Alpine

ง่ายต่อการดูแล Dockerfile

ในการติดตั้ง packet ต่างๆ เพิ่มเติมของแต่ละ Base OS จะใช้คำสั่งไม่เหมือนกัน ซึ่งหากเราใช้ไม่เหมือนกันเราก็ต้องเสียเวลาเรียนรู้การติดตั้งที่ไม่เหมือนกันอีก เช่น Debian ใช้ apt-get และ Alpine ใช้ apk และชื่อ packet ที่ติดตั้งก็ไม่เหมือนกันด้วย

แต่ถ้าเราใช้ตัวเดียวเป็นหลัก เช่น Alpine เราก็จะเรียนรู้แค่คำสั่งติดตั้ง หรือแม้แต่ไฟล์ที่ค่าต่างๆ ของ packet น้อยลง

Arnon Kijlerdphon

IT manager & DevOps @Twin Synergy Co.,Ltd

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.