Menyimpan image container Docker di Artifact Registry

Artifact Registry menyediakan satu lokasi untuk mengelola paket pribadi dan image container Docker.

Panduan memulai ini menunjukkan cara:

  • Membuat repositori Docker pribadi di Artifact Registry
  • Menyiapkan autentikasi
  • Mengirim image ke repositori
  • Mengambil image dari repositori

Untuk mengikuti panduan langkah demi langkah tugas ini langsung di Google Cloud konsol, klik Pandu saya:

Pandu saya


Sebelum memulai

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the Artifact Registry API.

    Enable the API

  5. Make sure that you have the following role or roles on the project: Artifact Registry Administrator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Buka IAM
    2. Pilih project.
    3. Klik Berikan akses.
    4. Di kolom Akun utama baru, masukkan ID pengguna Anda. Biasanya berupa alamat email untuk Akun Google.

    5. Di daftar Pilih peran, pilih peran.
    6. Untuk memberikan peran tambahan, klik Tambahkan peran lain, lalu tambahkan setiap peran tambahan.
    7. Klik Simpan.
  6. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  7. Make sure that billing is enabled for your Google Cloud project.

  8. Enable the Artifact Registry API.

    Enable the API

  9. Make sure that you have the following role or roles on the project: Artifact Registry Administrator

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the project.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role column to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Buka IAM
    2. Pilih project.
    3. Klik Berikan akses.
    4. Di kolom Akun utama baru, masukkan ID pengguna Anda. Biasanya berupa alamat email untuk Akun Google.

    5. Di daftar Pilih peran, pilih peran.
    6. Untuk memberikan peran tambahan, klik Tambahkan peran lain, lalu tambahkan setiap peran tambahan.
    7. Klik Simpan.

Memilih shell

Untuk menyelesaikan panduan memulai ini, gunakan Cloud Shell atau shell lokal Anda.

Cloud Shell
Cloud Shell adalah lingkungan shell untuk mengelola resource yang dihosting di Google Cloud. Cloud Shell telah diinstal dengan Docker dan Google Cloud CLI, antarmuka command line utama untuk Google Cloud.
Shell lokal
Jika lebih suka menggunakan shell lokal, Anda harus menginstal Docker dan gcloud CLI di lingkungan Anda.

Memulai Cloud Shell

Untuk meluncurkan Cloud Shell, lakukan langkah-langkah berikut:

  1. Buka Google Cloud console.

    Google Cloud console

  2. Klik tombol Activate Cloud Shell:  .

Sesi Cloud Shell akan terbuka di dalam frame yang lebih rendah di konsol. Anda menggunakan shell ini untuk menjalankan perintah gcloud.

Menyiapkan shell lokal

Untuk menginstal gcloud CLI dan Docker, lakukan langkah-langkah berikut:

  1. Instal gcloud CLI. Untuk mengupdate penginstalan yang ada, jalankan perintah gcloud components update.

  2. Instal Docker jika belum diinstal.

  3. Docker memerlukan akses istimewa untuk berinteraksi dengan registry. Di Linux atau Windows, tambahkan pengguna yang Anda gunakan untuk menjalankan perintah Docker ke grup keamanan Docker. Langkah ini tidak diperlukan di macOS karena Docker Desktop berjalan di mesin virtual sebagai pengguna root.

    Linux

    Grup keamanan Docker disebut docker. Untuk menambahkan nama pengguna Anda, jalankan perintah berikut:

    sudo usermod -a -G docker ${USER}
    

    Windows

    Grup keamanan Docker disebut docker-users. Untuk menambahkan pengguna dari command prompt Administrator, jalankan perintah berikut:

    net localgroup docker-users DOMAIN\USERNAME /add
    

    Di mana

    • DOMAIN adalah domain Windows Anda.
    • USERNAME adalah nama pengguna Anda.
  4. Logout dan login kembali agar perubahan keanggotaan grup diterapkan. Jika menggunakan virtual machine, Anda mungkin perlu memulai ulang virtual machine agar perubahan keanggotaan diterapkan.

  5. Untuk memastikan Docker berjalan, jalankan perintah Docker berikut, yang menampilkan waktu dan tanggal saat ini:

    docker run --rm busybox date
    

    Flag --rm menghapus instance container saat keluar.

Membuat repositori Docker

Buat repositori Docker untuk menyimpan image sampel untuk panduan memulai ini.

Konsol

  1. Buka halaman Repositories di konsol Google Cloud .

    Buka halaman Repositori

  2. Klik add Create Repository.

  3. Tentukan quickstart-docker-repo sebagai nama repositori.

  4. Pilih Docker sebagai format dan Standar sebagai mode.

  5. Di bawah Jenis Lokasi, pilih Region dan kemudian pilih lokasi us-west1.

  6. Klik Buat.

Repositori ditambahkan ke daftar repositori.

gcloud

  1. Jalankan perintah berikut untuk membuat repositori Docker baru bernama quickstart-docker-repo di lokasi us-west1 dengan deskripsi "docker repository".

    gcloud artifacts repositories create quickstart-docker-repo --repository-format=docker \
        --location=us-west1 --description="Docker repository" \
        --project=PROJECT
    

    Dengan PROJECT sebagai project ID Google Cloud Anda.

  2. Jalankan perintah berikut untuk memverifikasi bahwa repositori Anda telah dibuat.

    gcloud artifacts repositories list \
        --project=PROJECT
    

Untuk mengetahui informasi selengkapnya tentang perintah Artifact Registry, jalankan perintah gcloud artifacts.

Mengonfigurasi autentikasi

Sebelum Anda dapat mengirim atau mengambil image, konfigurasikan Docker agar menggunakan Google Cloud CLI untuk mengautentikasi permintaan ke Artifact Registry.

Untuk menyiapkan autentikasi ke repositori Docker di region us-west1, jalankan perintah berikut:

gcloud auth configure-docker us-west1-docker.pkg.dev

Perintah ini mengupdate konfigurasi Docker Anda. Sekarang Anda dapat terhubung dengan Artifact Registry di project Google Cloud untuk mengirim dan menarik image.

Untuk mengetahui informasi tentang metode autentikasi lainnya, lihat Metode autentikasi.

Mendapatkan image untuk dikirim

Untuk panduan memulai ini, Anda akan mengirim image contoh bernama hello-app.

Jalankan perintah berikut untuk mengambil versi 1.0 dari image.

   docker pull us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0

Jalur image di Artifact Registry mencakup beberapa bagian. Untuk contoh gambar ini:

  • us-docker.pkg.dev adalah nama host untuk image container yang disimpan di repositori Docker Artifact Registry, yang mencakup lokasi repositori (us).
  • google-samples adalah project ID.
  • containers adalah ID repositori.
  • /gke/hello-app adalah jalur ke image di repositori containers.

Menambahkan image ke repositori

Sebelum mengirim image Docker ke Artifact Registry, Anda harus memberi tag pada image dengan nama repositori.

Memberi tag pada image dengan nama registry

Memberi tag pada image Docker dengan nama repositori mengonfigurasi perintah docker push untuk mengirim image ke lokasi tertentu. Untuk panduan memulai ini, lokasi host-nya adalah us-west1-docker.pkg.dev.

Jalankan perintah berikut untuk memberi tag pada image sebagai quickstart-image:tag1:

docker tag us-docker.pkg.dev/google-samples/containers/gke/hello-app:1.0 \
us-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

Dengan:

  • us-west1 adalah lokasi repositori.
  • us-west1-docker.pkg.dev adalah nama host untuk repositori Docker yang Anda buat.
  • PROJECT adalah Google Cloud project ID Anda. Jika project ID Anda berisi titik dua (:), lihat Project cakupan domain.
  • quickstart-docker-repo adalah ID repositori yang Anda buat.
  • quickstart-image adalah nama image yang ingin Anda gunakan di repositori. Nama image dapat berbeda dengan nama image lokal. Untuk panduan memulai ini, Anda akan menyimpan image langsung di bawah ID repositori quickstart-docker-repo.
  • tag1 adalah tag yang Anda tambahkan ke image Docker. Jika Anda tidak menentukan tag, Docker akan menerapkan tag default latest.

Sekarang Anda siap untuk mengirim image ke repositori yang Anda buat.

Mengirim image ke Artifact Registry

Setelah mengonfigurasi autentikasi dan memberi tag pada image lokal, Anda dapat mengirim image ke repositori yang Anda buat.

Untuk mengirim image Docker, jalankan perintah berikut:

docker push us-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1
Ganti PROJECT dengan Google Cloud project ID Anda. Jika project ID Anda berisi titik dua (:), lihat Project cakupan domain.

Mengambil image dari Artifact Registry

Untuk menarik image dari Artifact Registry ke komputer lokal Anda, jalankan perintah berikut:

docker pull us-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1
Ganti PROJECT dengan Google Cloud project ID Anda. Jika project ID Anda berisi titik dua (:), lihat Project cakupan domain.
latest: Pulling from [PROJECT-ID]/quickstart-image:tag1
Digest: sha256:70c42...
Status: Image is up to date for us-west1-docker.pkg.dev/PROJECT/quickstart-docker-repo/quickstart-image:tag1

Pembersihan

Agar akun Google Cloud Anda tidak dikenai biaya untuk resource yang digunakan pada halaman ini, ikuti langkah-langkah berikut.

Sebelum menghapus repositori, pastikan semua gambar yang ingin Anda pertahankan tersedia di lokasi lain.

Untuk menghapus repositori:

Konsol

  1. Buka halaman Repositories di konsol Google Cloud .

    Buka halaman Repositori

  2. Dalam daftar repositori, pilih repositori quickstart-docker-repo.

  3. Klik Hapus.

gcloud

Untuk menghapus repositori quickstart-docker-repo, jalankan perintah berikut:

gcloud artifacts repositories delete quickstart-docker-repo --location=us-west1

Langkah berikutnya