Kontainer, gambar, dan registri Docker
Tip
Konten ini adalah kutipan dari eBook, .NET Microservices Architecture for Containerized .NET Applications, tersedia di .NET Docs atau sebagai PDF yang dapat diunduh gratis dan dapat dibaca secara offline.
Saat menggunakan Docker, pengembang membuat aplikasi atau layanan dan mengemasnya serta dependensinya ke dalam citra kontainer. Citra adalah representasi statis dari aplikasi atau layanan serta konfigurasi dan dependensinya.
Untuk menjalankan aplikasi atau layanan, gambar aplikasi dibuat untuk membuat kontainer, yang akan berjalan di host Docker. Kontainer awalnya diuji di lingkungan pengembangan atau PC.
Pengembang harus menyimpan gambar dalam registri, yang bertindak sebagai pustaka gambar dan diperlukan saat menyebarkan ke orkestrator produksi. Docker mempertahankan registri publik melalui Docker Hub; vendor lain menyediakan registri untuk berbagai koleksi gambar, termasuk Azure Container Registry. Atau, perusahaan dapat memiliki registri privat lokal untuk gambar Docker mereka sendiri.
Gambar 2-4 menunjukkan bagaimana gambar dan registri di Docker berhubungan dengan komponen lain. Ini juga menunjukkan beberapa penawaran registri dari vendor.
Gambar 2-4. Taksonomi istilah dan konsep Docker
Registri seperti rak buku tempat gambar disimpan dan tersedia untuk ditarik untuk membangun kontainer untuk menjalankan layanan atau aplikasi web. Terdapat registri Docker pribadi lokal dan di cloud publik. Docker Hub adalah registri publik yang dikelola oleh Docker, di sepanjang Docker Trusted Registry sebuah solusi tingkat perusahaan, Azure menawarkan Azure Container Registry. AWS, Google, dan lainnya juga memiliki registri kontainer.
Menempatkan gambar dalam registri memungkinkan Anda menyimpan bit aplikasi statik dan tidak berubah, termasuk semua dependensinya pada tingkat kerangka kerja. Gambar-gambar tersebut kemudian dapat diberi versi dan disebarkan di berbagai lingkungan dan oleh karena itu menyediakan unit penerapan yang konsisten.
Registri gambar privat, baik yang dihosting di tempat atau di cloud, direkomendasikan jika:
Gambar Anda tidak boleh dibagikan secara publik karena kerahasiaan.
Anda ingin memiliki latensi jaringan minimum antara gambar dan lingkungan penerapan yang Anda pilih. Misalnya, jika lingkungan produksi Anda adalah cloud Azure, Anda mungkin ingin menyimpan gambar Anda di Azure Container Registry sehingga latensi jaringan menjadi minimal. Dengan cara yang sama, jika lingkungan produksi Anda adalah lokal, Anda mungkin ingin memiliki Docker Trusted Registry lokal yang tersedia dalam jaringan lokal yang sama.