Dokumen ini memperkenalkan konsep utama terkait container, termasuk registry, repositori, dan artefak. Beberapa informasi dasar tentang penerapan konsep ini pada Artifact Registry dan Container Registry juga disertakan.
Registry
Registry menyimpan dan mendistribusikan image container dan artefak yang diatur berdasarkan nama dalam repositori. Registry dapat berisi satu repositori 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 mengambil gambar publik, penting untuk memahami potensi 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. Dengan Artifact Registry, Anda dapat membuat beberapa repositori dalam satu project dan mengaitkan region atau multi-region tertentu dengan setiap repositori. Repositori terkait dapat dikelompokkan berdasarkan label.
Repositories
Gambar dan artefak dengan nama yang sama, tetapi tag yang berbeda diatur ke dalam repositori. Jika tidak ada tag yang ditentukan saat gambar dikirim ke repositori, gambar akan diberi tag dengan tag latest. Jika gambar lain dikirim tanpa menentukan tag, tag latest akan dipindahkan dari gambar asli ke gambar yang lebih baru, sehingga gambar pertama tanpa tag. Sebaiknya beri tag selain latest.
Istilah repositori tidak selalu digunakan secara konsisten; dalam Artifact Registry, lebih berguna untuk menggunakan bagian jalur ke image untuk mengidentifikasi project, region atau multi-region, dan nama gambar bersama dengan tag atau ringkasan manifes untuk mengidentifikasi versi yang benar.
Contoh:
docker push us-central1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1
us-central1
adalah lokasi repositoridocker.pkg.dev
adalah nama host untuk repositori Docker.- PROJECT adalah namespace yang dibuat oleh project ID Google Cloud Anda.
quickstart-docker-repo
adalah namespace dalam project tempat Anda menyimpan gambar. Di Artifact Registry, bagian jalur ini disebut repositori.quickstart-image
adalah repositori untuk semua versiquickstart-image
dan sering disebut sebagai image.tag1
adalah tag yang menentukan versi gambar.
Image
Artefak dan image dapat disimpan di dalam Artifact Registry. Artefak dapat berupa apa saja: file teks, gambar docker, atau diagram Helm, sedangkan gambar biasanya merujuk pada 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.
Gambar didorong atau diupload ke repositori, dan ditarik atau didownload dari repositori. Untuk menentukan image dan versi yang benar, registry dan artefak unik harus ditentukan.
Contoh:
docker pull us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0
us-docker.pkg.dev
adalah registry, termasuk multi-regionus
/google-samples/containers/gke/
adalah namespace dan sub-namespace. Di Artifact Registry,google-samples
adalah project Google Cloud dancontainers
disebut sebagai repositori Artifact Registryhello-app
adalah nama artefak:1.0
adalah tag yang menentukan versi artefak yang akan diambil
Lapisan
Image container yang disimpan di repositori dibuat secara bertahap menggunakan lapisan. Gambar yang berbeda dapat menggunakan beberapa lapisan yang sama. Lapisan ditetapkan dengan cara yang berbeda, bergantung pada jenis gambar. Misalnya, setiap petunjuk dalam Dockerfile sesuai dengan lapisan pada image Docker. Dalam registry, gambar dengan lapisan yang sama dapat berbagi lapisan tersebut, sehingga meningkatkan efisiensi penyimpanan. Demi keamanan, lapisan tidak dibagikan di berbagai registry yang berbeda.
Tag
Pengguna menambahkan tag saat mendorong atau menarik image ke repositori untuk menentukan versi image. Gambar dapat memiliki satu atau beberapa tag, atau tanpa tag sama sekali. Jika Anda mendorong gambar dua kali dengan tag yang sama, tag akan dihapus dari gambar pertama dan dipindahkan ke gambar kedua, sehingga gambar pertama tidak memiliki tag. Gambar yang tidak diberi tag masih dapat diakses melalui ringkasan manifes.
Tag latest
adalah tag khusus yang ditambahkan saat gambar dikirim tanpa tag.
Contoh:
docker push us-docker.pkg.dev/google-samples/containers/gke/hello-app
mendorong gambar ke hello-app:latest
docker pull us-docker.pkg.dev/google-samples/containers/gke/hello-app
akan mengambil gambar hello-app:latest
.
Penting untuk diperhatikan bahwa saat gambar dikirim ke repositori dengan tag
selain latest
, tag latest
tidak akan ditambahkan sehingga ada kemungkinan
gambar latest
berada di belakang perubahan terbaru. Sebaiknya gunakan tag selain latest
untuk rilis. Untuk mengetahui informasi selengkapnya tentang pemberian tag
pada gambar, baca cara Memberi tag pada gambar dengan benar.
Manifes
Manifes Gambar mengidentifikasi dan menentukan lapisan dalam setiap gambar secara unik. Manifes diidentifikasi dengan hash SHA-256 unik yang disebut ringkasan manifes. Ringkasan manifes lebih andal dan aman daripada tag karena beberapa versi gambar yang sama dapat didorong ke tag yang sama, sehingga meninggalkan beberapa gambar tanpa tag, sementara setiap gambar ditentukan secara unik oleh ringkasan manifesnya.
Jika Anda menggunakan alat untuk memindai atau menganalisis gambar, hasil dari alat ini hanya berlaku untuk gambar yang dipindai. Untuk memastikan bahwa Anda men-deploy gambar yang dipindai, Anda tidak dapat mengandalkan tag ini karena gambar yang dirujuk oleh tag dapat berubah.
Untuk mempelajari lebih lanjut pemberian tag dan manifes khusus Artifact Registry, baca Mengelola Image dan Menggunakan Image container.
Langkah selanjutnya
- Panduan memulai Docker
- Bekerja dengan image container
- Panduan memulai Helm
- Bekerja dengan diagram Helm
- Baca sumber daya kami tentang DevOps dan jelajahi program penelitian kami.