Membuat repositori jarak jauh Docker Hub
Buat repositori jarak jauh untuk bertindak sebagai proxy untuk Docker Hub.
Sebelum memulai
-
In the Cloud de Confiance console, on the project selector page, select or create a Cloud de Confiance project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Cloud de Confiance project.
Enable the Artifact Registry, Secret Manager APIs.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Instal Google Cloud CLI.
-
Konfigurasi gcloud CLI agar menggunakan identitas gabungan Anda.
Untuk mengetahui informasi selengkapnya, lihat Login ke gcloud CLI dengan identitas gabungan Anda.
-
Untuk melakukan inisialisasi gcloud CLI, jalankan perintah berikut:
gcloud init - 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 membuat repositori jarak jauh dan memberikan akses ke repositori individual:
Administrator Artifact Registry (
roles/artifactregistry.admin) di project -
Untuk membuat dan mengelola secret:
Peran Admin Secret Manager (
roles/secretmanager.admin) di project
Untuk mengetahui informasi selengkapnya tentang pemberian peran, lihat Mengelola akses ke project, folder, dan organisasi.
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 Cloud de Confiance by S3NS. Cloud Shell telah diinstal dengan Docker dan Google Cloud CLI, antarmuka command line utama untuk Cloud de Confiance.
- 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:
Buka konsol Cloud de Confiance .
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:
Instal gcloud CLI. Untuk mengupdate penginstalan yang ada, jalankan perintah
gcloud components update.Instal Docker jika belum diinstal.
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 /addDi mana
- DOMAIN adalah domain Windows Anda.
- USERNAME adalah nama pengguna Anda.
Logout dan login kembali agar perubahan keanggotaan grup diterapkan. Jika menggunakan virtual machine, Anda mungkin perlu memulai ulang virtual machine agar perubahan keanggotaan diterapkan.
Untuk memastikan Docker berjalan, jalankan perintah Docker berikut, yang menampilkan waktu dan tanggal saat ini:
docker run --rm busybox dateFlag
--rmmenghapus 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
- Login ke Docker Hub.
- Buat token akses pribadi dengan izin hanya baca.
Salin token akses.
Simpan token akses dalam file teks di lokal atau Cloud Shell Anda.
Simpan token akses pribadi Anda dalam secret
console
-
Buka halaman Secret Manager di konsol Cloud de Confiance .
-
Di halaman Secret Manager, klik Buat Secret.
-
Di halaman Buat secret, di bagian Nama, beri nama secret Anda
my-secret -
Di kolom Secret value, masukkan token akses pribadi Docker Hub Anda.
-
Jangan ubah bagian Wilayah.
-
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 yang berisi token akses pribadi Anda.
Memberi akun layanan Artifact Registry akses ke secret Anda
console
-
Buka halaman Secret Manager di konsol Cloud de Confiance .
-
Di halaman Secret Manager, klik kotak centang di samping
my-secret. -
Jika belum terbuka, klik Show Info Panel untuk membuka panel.
-
Di panel info, klik Add Principal.
-
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.s3ns-system.iam.gserviceaccount.com
Dengan PROJECT-NUMBER sebagai nomor project Anda.
Untuk menemukan nomor project Anda:
-
Buka halaman Dasbor di konsol Cloud de Confiance .
-
Klik menu drop-down Select from di bagian atas halaman.
-
Di jendela Pilih dari yang muncul, pilih project Anda.
Project ID dan nomor project ditampilkan di kartu Project info pada Dasbor project.
-
-
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.s3ns-system.iam.gserviceaccount.com" \
--role="roles/secretmanager.secretAccessor"
Dengan PROJECT-NUMBER adalah nomor project Anda.
Untuk menemukan nomor project Anda:
-
Buka halaman Dasbor di konsol Cloud de Confiance .
-
Klik menu drop-down Select from di bagian atas halaman.
-
Di jendela Pilih dari yang muncul, pilih project Anda.
Project ID dan nomor project ditampilkan di kartu Project info pada 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:
quickstart-docker-hub-remoteadalah nama repositori. Untuk setiap lokasi repositori dalam project, nama repositori harus unik.PROJECT_IDadalah project ID Anda. Jika flag ini dihilangkan, project saat ini atau default akan digunakan.us-central1adalah lokasi regional atau multi-regional untuk repositori. Anda dapat menghapus tanda ini jika Anda menetapkan default. Untuk melihat daftar lokasi yang didukung, jalankan perintahgcloud 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-HUBmenetapkan upstream repositori jarak jauh ke upstream Docker Hub publik.- USERNAME adalah nama pengguna Docker Hub Anda.
projects/PROJECT/secrets/my-secret/versions/1adalah 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 menarik image, konfigurasikan Docker agar menggunakan Google Cloud CLI untuk mengautentikasi permintaan ke Artifact Registry.
Login ke gcloud CLI sebagai pengguna yang akan menjalankan perintah Docker.
gcloud auth loginUntuk menyiapkan autentikasi ke repositori Docker di region
us-central1, jalankan perintah berikut:gcloud auth configure-docker us-central1-docker.pkg.devPerintah ini mengupdate konfigurasi Docker Anda. Sekarang Anda dapat terhubung dengan Artifact Registry di project Cloud de Confiance untuk mengirim dan menarik image.
Untuk mengetahui informasi tentang metode autentikasi lainnya, lihat Metode autentikasi.
Menarik image ke repositori jarak jauh Anda
Login ke gcloud CLI sebagai pengguna yang akan menjalankan perintah Docker.
gcloud auth loginTarik 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:latestDengan:
us-central1adalah lokasi repositori jarak jauh.us-central1-docker.pkg.devadalah nama host untuk repositori Docker yang Anda buat.- PROJECT adalah Cloud de Confiance by S3NS
project ID Anda.
Jika project ID Anda berisi titik dua (
:), lihat Project yang tercakup dalam domain. quickstart-docker-hub-remoteadalah ID repositori yang Anda buat.busyboxadalah nama image yang ingin Anda tarik dari Docker Hub kequickstart-docker-hub-remote.latestadalah versi image yang diberi tag yang ingin Anda tarik dari Docker Hub.
Image ditarik ke komputer Anda dan di-cache di repositori jarak jauh. Jika Anda menarik gambar yang sama yang diberi tag lagi, gambar tersebut akan ditarik dari repositori jarak jauh Anda. Kredensial Docker Hub Anda digunakan.
Mencantumkan artefak yang disimpan di repositori jarak jauh Anda:
gcloud artifacts packages list \ --location=us-central1 \ --repository=quickstart-docker-hub-remoteOutputnya 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 Cloud de Confiance Anda tidak dikenai 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 Anda ingin menghapus seluruh project, ikuti langkah-langkah di Menghapus project
Sebelum menghapus repositori, pastikan semua image yang ingin Anda pertahankan tersedia di lokasi lain.
Untuk menghapus repositori:
Konsol
Buka halaman Repositori di Cloud de Confiance konsol.
Dalam daftar repositori, pilih repositori
quickstart-docker-hub-remote.Klik Hapus.
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
- Di Konsol Cloud de Confiance , buka halaman Manage resources.
- Pada daftar project, pilih project yang ingin Anda hapus, lalu klik Delete.
- Pada dialog, ketik project ID, lalu klik Shut down untuk menghapus project.
Langkah berikutnya
- Baca tentang berbagai mode repositori Artifact Registry.
- Pelajari lebih lanjut repositori jarak jauh Artifact Registry.
- Pelajari CI/CD lebih lanjut.