Membuat repositori jarak jauh Docker Hub

Buat repositori jarak jauh agar dapat bertindak sebagai proxy untuk Docker Hub.

Sebelum memulai

  1. Login ke akun Google Cloud Anda. Jika Anda baru menggunakan Google Cloud, buat akun untuk mengevaluasi performa produk kami dalam skenario dunia nyata. Pelanggan baru juga mendapatkan kredit gratis senilai $300 untuk menjalankan, menguji, dan men-deploy workload.
  2. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  3. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  4. Aktifkan API Artifact Registry, Secret Manager.

    Mengaktifkan API

  5. Menginstal Google Cloud CLI.
  6. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  7. Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.

    Buka pemilih project

  8. Pastikan penagihan telah diaktifkan untuk project Google Cloud Anda.

  9. Aktifkan API Artifact Registry, Secret Manager.

    Mengaktifkan API

  10. Menginstal Google Cloud CLI.
  11. Untuk initialize gcloud CLI, jalankan perintah berikut:

    gcloud init
  12. Buat akun Docker Hub.

Peran yang diperlukan

Untuk mendapatkan izin yang diperlukan untuk membuat repositori jarak jauh Docker Hub, minta administrator untuk memberi Anda peran IAM berikut:

Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

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. Aplikasi ini dilengkapi 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 Konsol Google Cloud.

    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 sudah 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 virtual machine sebagai pengguna root.

    Linux

    Grup keamanan Docker disebut docker. Untuk menambahkan nama pengguna, 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
    

    Dari mana

    • DOMAIN adalah domain Windows Anda.
    • USERNAME adalah nama pengguna Anda.
  4. Logout dan login kembali agar perubahan keanggotaan grup diterapkan. Jika menggunakan mesin virtual, Anda mungkin perlu memulai ulang mesin virtual 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.

Mengonfigurasi autentikasi Docker Hub

Untuk mencegah penggunaan kuota Docker Hub yang tidak diautentikasi, sebaiknya lakukan autentikasi ke Docker Hub saat menggunakan repositori jarak jauh. Repositori jarak jauh memungkinkan Anda menambahkan nama pengguna Docker Hub dan token akses pribadi yang disimpan sebagai rahasia untuk mengautentikasi ke Docker Hub.

Membuat token akses pribadi Docker Hub

  1. Login ke Docker Hub.
  2. Buat token akses pribadi dengan izin hanya baca.
  3. Salin token akses.

  4. Simpan token akses dalam file teks di Cloud Shell atau lokal Anda.

Menyimpan token akses pribadi Anda secara rahasia

console

  1. Buka halaman Secret Manager di konsol Google Cloud.

    Buka halaman Secret Manager

  2. Di halaman Secret Manager, klik Create Secret.

  3. Di halaman Create secret, di bagian Name, beri nama rahasia Anda my-secret

  4. Di kolom Secret value, masukkan token akses pribadi Docker Hub Anda.

  5. Jangan ubah bagian Region.

  6. Klik tombol Buat secret.

gcloud CLI

gcloud secrets create my-secret --data-file="/path/to/file.txt"

Dengan /path/to/file.txt adalah lokasi file teks dengan token akses pribadi Anda.

Memberi akun layanan Artifact Registry akses ke secret Anda

console

  1. Buka halaman Secret Manager di konsol Google Cloud.

    Buka halaman Secret Manager

  2. Di halaman Secret Manager, klik kotak centang di samping my-secret.

  3. Jika belum terbuka, klik Tampilkan Panel Info untuk membuka panel.

  4. Di panel info, klik Tambahkan Kepala Sekolah.

  5. Di area teks New principals, masukkan alamat email akun layanan Artifact Registry. Alamat email akun layanan Artifact Registry diformat dengan cara berikut

    service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com

    Dengan PROJECT-NUMBER sebagai nomor project Anda.

    Untuk menemukan nomor project Anda:

    • Buka halaman Dashboard di Konsol Google Cloud.

      Buka halaman Dashboard

    • Klik menu drop-down Select from di bagian atas halaman.

    • Di jendela Select from yang muncul, pilih project Anda.

      Project ID dan nomor project ditampilkan di kartu Project info Dasbor project.

  6. Di dropdown Select a role, pilih Secret Manager, lalu Secret Manager Secret Accessor.

gcloud CLI

gcloud secrets add-iam-policy-binding my-secret \
    --member="serviceAccount:service-PROJECT-NUMBER@gcp-sa-artifactregistry.iam.gserviceaccount.com" \
    --role="roles/secretmanager.secretAccessor"

Dengan PROJECT-NUMBER sebagai nomor project untuk project Anda.

Untuk menemukan nomor project Anda:

  • Buka halaman Dashboard di Konsol Google Cloud.

    Buka halaman Dashboard

  • Klik menu drop-down Select from di bagian atas halaman.

  • Di jendela Select from yang muncul, pilih project Anda.

    Project ID dan nomor project ditampilkan di kartu Project info Dasbor project.

Membuat repositori jarak jauh

Buat repositori jarak jauh Artifact Registry bernama quickstart-docker-hub-remote di lokasi us-central1 dengan kredensial Docker Hub Anda dengan menjalankan perintah berikut:

gcloud artifacts repositories create quickstart-docker-hub-remote \
    --project=PROJECT_ID \
    --repository-format=DOCKER  \
    --location=us-central1 \
    --description="Remote Docker repository" \
    --mode=remote-repository \
    --remote-repo-config-desc="Docker Hub" \
    --remote-docker-repo=DOCKER-HUB \
    --remote-username=USERNAME \
    --remote-password-secret-version=projects/PROJECT/secrets/my-secret/versions/1

Dengan keterangan:

  • quickstart-docker-hub-remote adalah nama repositori. Untuk setiap lokasi repositori dalam sebuah project, nama repositori harus unik.
  • PROJECT_ID adalah project ID Anda. Jika flag ini dihilangkan, project saat ini atau default akan digunakan.
  • us-central1 adalah lokasi regional atau multi-regional untuk repositori. Anda dapat menghapus flag ini jika menetapkan default. Untuk melihat daftar lokasi yang didukung, jalankan perintah gcloud artifacts locations list.
  • "Remote Docker repository" adalah deskripsi opsional repositori Anda. Jangan sertakan data sensitif karena deskripsi repositori tidak dienkripsi.
  • "Docker Hub" adalah deskripsi opsional untuk konfigurasi repositori eksternal untuk repositori jarak jauh ini.
  • DOCKER-HUB menetapkan upstream repositori jarak jauh ke upstream Docker Hub publik.
  • USERNAME adalah nama pengguna Docker Hub Anda.
  • projects/PROJECT/secrets/my-secret/versions/1 adalah versi rahasia yang Anda buat untuk menyimpan token akses pribadi Docker Hub.

Artifact Registry membuat repositori dan menambahkannya ke daftar repositori.

Mengonfigurasi autentikasi Docker

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

  1. Login ke gcloud CLI sebagai pengguna yang akan menjalankan perintah Docker.

    gcloud auth login
    
  2. Untuk menyiapkan autentikasi ke repositori Docker di region us-central1, jalankan perintah berikut:

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

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

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

Mengambil image ke repositori jarak jauh

  1. Login ke gcloud CLI sebagai pengguna yang akan menjalankan perintah Docker.

    gcloud auth login
    
  2. Tarik image dari Docker Hub ke komputer Anda, dan ke repositori jarak jauh dengan perintah berikut:

    docker pull us-central1-docker.pkg.dev/PROJECT/quickstart-docker-hub-remote/busybox:latest
    

    Dengan keterangan:

    • us-central1 adalah lokasi repositori jarak jauh.
    • us-central1-docker.pkg.dev adalah nama host untuk repositori Docker yang Anda buat.
    • PROJECT adalah project ID Google Cloud Anda. Jika project ID Anda berisi titik dua (:), lihat Project cakupan domain.
    • quickstart-docker-hub-remote adalah ID repositori yang Anda buat.
    • busybox adalah nama image yang ingin Anda tarik dari Docker Hub ke quickstart-docker-hub-remote.
    • latest adalah versi image bertag yang ingin Anda ambil dari Docker Hub.

    Image ditarik ke komputer Anda dan di-cache di repositori jarak jauh. Jika Anda menarik lagi gambar yang diberi tag yang sama, gambar tersebut akan diambil dari repositori jarak jauh Anda. Kredensial Docker Hub Anda sudah digunakan.

  3. Tampilkan daftar artefak yang disimpan di repositori jarak jauh Anda:

    gcloud artifacts packages list \
        --location=us-central1 \
        --repository=quickstart-docker-hub-remote
    

    Outputnya akan terlihat seperti berikut:

    Listing items under project my-project, location us-central1, repository quickstart-docker-hub-remote.
    
    PACKAGE: busybox
    CREATE_TIME: 2023-06-19T18:59:09
    UPDATE_TIME: 2023-06-19T18:59:10
    

Pembersihan

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

Menghapus repositori Anda

Jika Anda ingin mempertahankan project dan hanya menghapus resource repositori, ikuti langkah-langkah di bagian ini. Jika ingin menghapus seluruh project, ikuti langkah-langkah di artikel Menghapus project

Sebelum menghapus repositori, pastikan gambar yang ingin Anda simpan 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-hub-remote.

  3. Klik Delete.

gcloud

Untuk menghapus repositori quickstart-docker-hub-remote, jalankan perintah berikut:

gcloud artifacts repositories delete quickstart-docker-hub-remote \
    --location=us-central1

Menghapus project Anda

  1. Di konsol Google Cloud, buka halaman Manage resource.

    Buka Manage resource

  2. Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
  3. Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.

Langkah selanjutnya