🗃️ Docker Registry

แหล่งเก็บ Docker Images ที่ใหญ่ที่สุดในโลก 😍

🤠 จาก บทความที่ 3 กับ บทความที่ 4 ที่ได้ลองเล่น 🐳 Docker เราจะพบว่ามันมีขั้นตอนหนึ่งที่พูดถึง 🗃️ Docker Registry รวมอยู่ด้วย ซึ่งจะไม่พูดถึงก็ไม่ได้ เพราะมันเป็นหนึ่งในหัวใจของพี่วาฬน้ำเงินของเราเลยทีเดียว ดังนั้นในบทความนี้เราจะมาลงรายละเอียดกับ 🗃️ Docker Registry กันฮ๊าฟ

🚨 เท้าความเดิม

จาก บทความที่ 3 ตอนที่เราใช้คำสั่ง docker pull หรือ docker run ตัวพี่วาฬ 🐳 Docker จะไปตรวจว่าในเครื่องของเรามี 🖼️ Container Image นั้นๆอยู่หรือเปล่า ซึ่งหากไม่มีเขาก็จะไปดาวโหลดมาจาก 🗃️ Docker Registry มาเก็บไว้ในเครื่องตามรูปด้านล่าง

🤠 ตรงจุดนี้จะทำให้เรารู้คร่าวๆละว่า 🗃️ Docker Registry คือแหล่งเก็บ 🖼️ Container Images ที่อยู่บนอินเตอร์เน็ตนั่นเอง ดังนั้นเราจะลองซูมเข้าไปดูว่าข้างในนั้นมันเป็นยังไงบ้างดีกว่า

🗃️ Docker Registry

ถ้าจะอธิบายตรงนี้ ดช.แมวน้ำ อยากให้จินตนาการถึงตอนที่เราเขียนโปรแกรม แล้วอยากเอา package ของคนอื่นที่อยู่บนอินเตอร์เน็ตมาใช้ เราก็จะไปดาวโหลด package พวกนั้นมาจากส่วนกลางของแต่ละภาษา เช่น nuget, nodejs, pip, bower บลาๆ มาติดตั้งที่โปรเจคของเราชิมิ

จากแนวคิดที่ว่ามาเจ้า 🐳 Docker ก็มีตัวกลางที่เอาไว้เก็บ 🖼️ Container Images ของทุกคนทั่วโลกเช่นกัน ดังนั้นเมื่อมีคนสร้าง 🖼️ Container Image แล้วอยากจะแชร์ให้คนในทีม/ทั่วโลกใช้ เขาก็จะทำการอัพโหลดมันขึ้นมาเก็บที่ 🗃️ Docker Registry นั่นเอง ดังนั้นเวลาที่เราใช้คำสั่งที่เกี่ยวข้องกับ Image แล้วพี่วาฬมองหา Image ในเครื่องไม่เจอ เขาก็จะว่ายน้ำไปตามหา Image ตัวนั้นๆจาก 🗃️ Docker Registry มาให้เรานั่นเอง ตามรูปด้านล่าง

🤠 โดยปรกติถ้าเราพูดคำว่า 🗃️ Docker Registry มันจะหมายถึง 🌎 Docker Hub ที่เป็นตัวรวม 🖼️ Container Images ของทุกคนทั่วโลก ซึ่งมันมี Container Image อยู่ในนั้นเป็น 1,000,000,000 ล้านตัว+ และมีผู้ใช้เงินเกิน 5 ล้านคนต่อวัน 🤯 ดังนั้นของแทบจะทุกอย่างที่เราอยากได้เกิน 80% น่าจะอยู่บนนั้นหมดแล้วนั่นเอง

https://hub.docker.com

โดยปรกติถ้าเราจะสร้าง 🖼️ Container Image ไปฝากไว้บน 🌎 Docker Hub เราก็สามารถทำได้เลยแถมฟรีด้วย แต่ข้อเสียของมันคือ 👁️ ทุกคนบนโลกมองเห็นและสามารถใช้งานได้นะจ๊ะ (ก็เหมือนฝากโค้ดไว้กับ Git Hub งุย) ซึ่งถ้าเราไม่อยากให้คนอื่นเห็น เช่นงานเราสำคัญมากๆไรงี้ เราต้องจ่ายเงินเพื่อทำเป็น private นั่นเอง

🗃️ Container Registry

ถ้าถามว่ามันมีที่เก็บ 🖼️ Container Images แค่ใน 🌎 Docker Hub เพียงที่เดียวหรือเปล่า? คำตอบคือไม่ใช่ เพราะทั่วโลกมีผู้ให้บริการเก็บ Container Image อยู่มากมาย โดยเฉพาะกับเหล่าผู้ให้บริการคลาว์ด ไม่ว่าจะเป็น Microsoft ก็มี ACR (Azure Container Registry) ส่วน Amazon ก็มี ECR (Elastic Container Registry) พี่ Google ก็มี CR (Container Registry) และพี่จีน Alibaba ก็มี CR (Container Registry) ให้เราได้ลองเลือกใช้กัน 😉

รายละเอียดการเอา 🖼️ Container Image ไปเล่นกับผู้ให้บริการคลาว์ดแต่ละเจ้าได้เห็นแน่นอนแต่ ดช.แมวน้ำ ขอแยกเอาไว้โชว์ในบทความถัดๆไปนะขอรับ

🎯 Summary

🗃️ Docker Registry คือส่วนกลางที่เอาไว้เก็บ 🖼️ Container Image จากทั่วโลกไว้บนอินเตอร์เน็ต ซึ่งรู้จักกันในชื่อ 🌎 Docker Hub นั่นเอง แต่ก็ยังมีที่เก็บ 🖼️ Container Image อื่นๆทั่วโลก เช่นจากผู้ให้บริการคลาว์ดอย่าง Microsoft, Amazon, Google และ Alibaba คอยให้เราได้ลองใช้บริการอยู่นั่นเอง

หมายเหตุ รายละเอียดของ 🗃️ Docker Registry จริงๆยังมีอีกเยอะเบยที่น่าสนใจ แต่ถ้าเราจะอัดแต่ทฤษฎีเพียงอย่างเดียวก็จะเข้าใจมันได้ไม่เต็มร้อย ดังนั้น ดช.แมวน้ำ จะค่อยๆอธิบายควบคู่กับตอนทำ Workshop ละกันนะจุ๊ฟๆ 😙

ในบทความถัดไปเดี๋ยวเรามาลองสร้าง 🖼️ Container Image ตัวแรกของเรา เพื่อเอาไปใช้งานส่วนตัว หรือ เอาไปใช้ภายในทีมกันครัช

🖼️ Container Image
ช่องทางสนับสนุนค่าอาหารแมวน้ำกั๊ฟ 😘

Last updated

Was this helpful?