ในการ 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 น้อยลง