Konsep container

Dokumen ini memperkenalkan konsep utama terkait image container, termasuk registry, repositori, dan artefak. Beberapa informasi dasar tentang cara penerapan konsep ini ke Artifact Registry dan Container Registry juga disertakan.

Contoh Artifact Registry di halaman ini terutama merujuk ke repositori format Docker dan gcr.io. Untuk mengetahui informasi selengkapnya, lihat Format yang didukung dan Ringkasan repositori.

Registry

Registry menyimpan dan mendistribusikan image container dan artefak yang diatur berdasarkan nama dalam repositori. Registry dapat berisi satu atau beberapa repositori dan dapat bersifat publik atau pribadi.

Layanan registry seperti Docker Hub dan Artifact Registry menyediakan opsi untuk membuat repositori publik atau pribadi. Saat menarik image publik, penting untuk memahami kemungkinan masalah keamanan. Baca pengelolaan dependensi untuk mengetahui informasi selengkapnya tentang pemantauan kerentanan dan mengurangi jejak dependensi Anda.

Registry diatur ke dalam repositori yang menyimpan image container individual. Artifact Registry memungkinkan Anda membuat beberapa repositori dalam satu project dan mengaitkan lokasi regional atau multi-regional tertentu dengan setiap repositori. Repositori terkait dapat dikelompokkan berdasarkan label.

Repositori Artifact Registry dan pengelolaan image

Di repositori format Docker Artifact Registry, Anda dapat menyimpan beberapa image container dengan nama yang berbeda di repositori yang sama. Setiap versi image diidentifikasi oleh ringkasan image dan dapat dikaitkan dengan tag. Tag dapat berubah atau tidak dapat diubah. Untuk mengetahui informasi selengkapnya tentang versi dan tag image container, lihat Versi image container.

Artifact Registry biasanya merujuk ke bagian jalur ke image untuk mengidentifikasi project, lokasi regional atau multi-regional, dan nama image beserta tag atau ringkasan manifes untuk mengidentifikasi versi yang benar.

Contoh:

docker push us-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

  • us-west1 adalah lokasi repositori
  • docker.pkg.dev adalah nama host untuk repositori format Docker.
  • PROJECT adalah namespace yang dibuat oleh Google Cloud project ID Anda.
  • quickstart-docker-repo adalah namespace di bawah project Anda tempat Anda menyimpan image. Di Artifact Registry, bagian jalur ini disebut repositori.
  • quickstart-image adalah nama untuk semua versi quickstart-image dan sering disebut sebagai image.
  • tag1 adalah tag yang menentukan versi image.

Gambar

Artefak dan image dapat disimpan dalam Artifact Registry. Artefak dapat berupa apa saja: file teks, image Docker, atau diagram Helm, sedangkan image biasanya merujuk ke image container. Image container adalah paket software yang berisi semua elemen yang diperlukan untuk dijalankan di lingkungan apa pun. Baca Apa yang dimaksud dengan container untuk mengetahui informasi selengkapnya.

Image dikirim atau diupload ke repositori dan ditarik atau didownload dari repositori. Untuk menentukan image dan versi yang benar, registry dan artefak unik harus ditentukan.

Untuk mengetahui informasi selengkapnya tentang nama repositori dan image di Artifact Registry, lihat Nama repositori dan image.

Lapisan

Image container yang disimpan di repositori dibuat secara bertahap menggunakan lapisan. Image yang berbeda dapat menggunakan beberapa lapisan yang sama. Lapisan ditentukan dengan cara yang berbeda, bergantung pada jenis image. Misalnya, setiap instruksi dalam Dockerfile sesuai dengan lapisan dalam image Docker. Dalam registry, image dengan lapisan umum berbagi lapisan tersebut, sehingga meningkatkan efisiensi penyimpanan. Untuk keamanan, lapisan tidak dibagikan di berbagai registry.

Saat Anda menghapus image container, lapisan tidak akan langsung dihapus. Lapisan yang tidak direferensikan oleh image apa pun di registry akan dihapus setiap hari.

Tag

Pengguna menambahkan tag saat mengirim atau menarik image ke repositori untuk menentukan versi image. Image dapat memiliki satu atau beberapa tag, atau tidak memiliki tag sama sekali. Jika Anda menggunakan tag yang dapat diubah, dan Anda mengirim image dua kali dengan tag yang sama, tag akan dihapus dari image pertama dan dipindahkan ke image kedua, sehingga image pertama tidak memiliki tag. Image yang tidak diberi tag masih dapat diakses menggunakan ringkasan manifesnya.

Jika Anda menggunakan tag yang tidak dapat diubah, tindakan berikut tidak diizinkan:

  • Menghapus image yang diberi tag. Menghapus image yang tidak diberi tag masih diizinkan.
  • Menghapus tag dari image.
  • Mengirim image dengan tag yang sudah digunakan oleh versi image lain di repositori.

Tag latest adalah tag khusus yang ditambahkan saat image dikirim tanpa tag.

Contoh:

docker push us-west1-docker.pkg.dev/my-project/my-repo/hello-app

mengirim image ke hello-app:latest

docker pull us-west1-docker.pkg.dev/my-project/my-repo/hello-app

menarik image hello-app:latest.

Perlu diperhatikan bahwa saat image dikirim ke repositori dengan tag selain latest, tag latest tidak akan ditambahkan, sehingga image latest mungkin tertinggal dari perubahan terbaru. Sebaiknya gunakan tag selain latest untuk rilis.

Manifes

Manifes Image secara unik mengidentifikasi dan menentukan lapisan dalam setiap image. Manifes diidentifikasi oleh hash SHA-256 unik yang disebut ringkasan manifes. Ringkasan manifes lebih andal dan aman daripada tag karena di repositori dengan tag yang dapat diubah, beberapa versi image yang sama dapat dikirim ke tag yang sama, sehingga beberapa image tidak memiliki tag, sedangkan setiap image ditentukan secara unik oleh ringkasan manifesnya.

Jika Anda menggunakan alat untuk memindai atau menganalisis image, hasil dari alat ini hanya valid untuk image yang dipindai. Untuk memastikan bahwa Anda men-deploy image yang telah dipindai, Anda tidak dapat mengandalkan tag karena image yang dirujuk oleh tag mungkin berubah.

Untuk mempelajari lebih lanjut pemberian tag dan manifes khusus Artifact Registry, baca Mengelola Image dan Menggunakan image container.

Pemanasan awal image

Untuk aplikasi yang sensitif terhadap latensi yang menggunakan streaming image, menunggu image ditarik untuk pertama kalinya di node atau instance baru, yang sering disebut "cold start", dapat menyebabkan penundaan yang tidak diinginkan. Pemanasan awal memungkinkan Anda memulai download image secara eksplisit ke dalam cache Streaming Image sebelum diminta. Proses ini membantu memastikan image Anda tersedia untuk pengiriman cepat saat cluster GKE Anda memintanya.

Untuk melakukan pemanasan awal image, gunakan Artifact Registry API. Untuk mengetahui petunjuknya, lihat Mengurangi latensi dengan pemanasan awal image.

Langkah berikutnya