ในการ Build docker image เราจำเป็นตัองเลือกใช้งาน Base OS ก่อนซึ่งมันมีหลากหลายมากให้เลือกใช้ เช่น CentOS, Debian หรือ Alpine เป็นต้น แล้วแต่ความถนัดของแต่ละคนว่าชอบตัวไหน หรือเป็นสาวกตัวไหน
ผมแนะนำว่าในโปรเจ็คของเรา ไม่ว่าจะมีกี่ services ควรเลือกใช้งาน Base OS ที่เหมือนกัน เรามาดูว่าประโยชน์กันว่ามันจะช่วยเราเรื่องอะไร
สมมติเรามี 3 services
ถ้าเราเลือก Alpine เป็น Base OS ของทั้ง 3 services ก็จะทำให้เวลาเรา Build มันจะทำการ Pull image ลงมา 1 image แล้วทั้ง 3 services ของเราก็จะเรียกใช้งานแค่ตัวนี้ ทำให้ประหยัดเนื้อที่ของเครื่องไปมาก เพราะเนื้อที่ของแต่ละ Base OS ก็มีขนาดต่างกัน โดย Alpine จะเล็กมาก ส่วนใหญ่ผมจะเลือก Alpine
ในการติดตั้ง packet ต่างๆ เพิ่มเติมของแต่ละ Base OS จะใช้คำสั่งไม่เหมือนกัน ซึ่งหากเราใช้ไม่เหมือนกันเราก็ต้องเสียเวลาเรียนรู้การติดตั้งที่ไม่เหมือนกันอีก เช่น Debian ใช้ apt-get และ Alpine ใช้ apk และชื่อ packet ที่ติดตั้งก็ไม่เหมือนกันด้วย
แต่ถ้าเราใช้ตัวเดียวเป็นหลัก เช่น Alpine เราก็จะเรียนรู้แค่คำสั่งติดตั้ง หรือแม้แต่ไฟล์ที่ค่าต่างๆ ของ packet น้อยลง