Bagikan melalui


Mengelola konten publik dengan Azure Container Registry

Artikel ini adalah gambaran umum praktik dan alur kerja untuk menggunakan registri lokal seperti registri kontainer Azure untuk mempertahankan salinan konten publik, seperti gambar kontainer di Docker Hub.

Risiko dengan konten publik

Lingkungan Anda mungkin memiliki dependensi pada konten publik seperti gambar kontainer publik, diagram Helm, kebijakan Open Policy Agent (OPA), atau artefak lainnya. Misalnya, Anda dapat menjalankan nginx untuk perutean layanan atau docker build FROM alpine dengan menarik gambar langsung dari Docker Hub atau registri publik lainnya.

Tanpa kontrol yang tepat, memiliki dependensi pada konten registri publik dapat memperkenalkan risiko pada alur kerja pengembangan dan penyebaran gambar Anda. Untuk mengurangi risiko, simpan salinan lokal konten publik jika memungkinkan. Untuk detailnya, lihat blog Open Container Initiative.

Autentikasi dengan Docker Hub

Sebagai langkah pertama, jika Saat ini Anda menarik gambar publik dari Docker Hub sebagai bagian dari alur kerja build atau penyebaran, kami sarankan Anda mengautentikasi menggunakan akun Docker Hub, bukan membuat permintaan penarikan anonim.

Saat sering membuat permintaan pull anonim, Anda mungkin melihat kesalahan Docker mirip dengan ERROR: toomanyrequests: Too Many Requests. atau You have reached your pull rate limit. Autentikasi ke Docker Hub untuk mencegah kesalahan ini.

Catatan

Mulai 2 November 2020, batas kecepatan unduh berlaku untuk permintaan anonim dan yang terautentikasi ke Docker Hub dari akun Paket Docker Gratis yang diberlakukan oleh alamat IP dan ID Docker, masing-masing.

Saat memperkirakan jumlah permintaan penarikan Anda, perhitungkan bahwa saat menggunakan layanan penyedia cloud atau bekerja di belakang NAT perusahaan, beberapa pengguna akan disajikan ke Docker Hub secara agregat sebagai subset alamat IP. Menambahkan autentikasi akun berbayar Docker ke permintaan yang dibuat ke Docker Hub akan menghindari potensi gangguan layanan karena pembatasan batas tarif.

Untuk detailnya, lihat Harga dan langganan Docker dan Ketentuan Layanan Docker.

Token akses Docker Hub

Docker Hub mendukung token akses pribadi sebagai alternatif untuk kata sandi Docker saat mengautentikasi ke Docker Hub. Token direkomendasikan untuk layanan otomatis yang menarik gambar dari Docker Hub. Anda dapat membuat beberapa token untuk pengguna atau layanan yang berbeda, dan mencabut token saat tidak lagi diperlukan.

Untuk mengautentikasi docker login menggunakan token, hilangkan kata sandi pada baris perintah. Ketika dimintai kata sandi, masukkan token sebagai gantinya. Jika Anda mengaktifkan autentikasi dua faktor untuk akun Docker Hub, Anda harus menggunakan token akses pribadi saat masuk dari Docker CLI.

Mengautentikasi dari layanan Azure

Beberapa layanan Azure termasuk App Service dan Azure Container Instances mendukung gambar penarikan dari registri publik seperti Docker Hub untuk penyebaran kontainer. Jika Anda perlu menyebarkan gambar dari Docker Hub, kami sarankan Anda mengonfigurasi pengaturan untuk mengautentikasi menggunakan akun Docker Hub. Contoh:

App Service

  • Sumber gambar: Docker Hub
  • Akses repositori: Pribadi
  • Masuk: <Nama pengguna Docker Hub>
  • Kata Sandi: <Token Docker Hub>

Untuk detailnya, lihat penarikan yang diautentikasi Docker Hub pada App Service.

Azure Container Instances

  • Sumber gambar: Docker Hub atau registri lainnya
  • Tipe gambar: Pribadi
  • Server login registri gambar: docker.io
  • Nama pengguna registri gambar: <Nama pengguna Docker Hub>
  • Kata sandi registri gambar: <Token Docker Hub>
  • Gambar: docker.io/<nama repo>:<tag>

Mengonfigurasi Artefak Cache untuk menggunakan konten publik

Praktik terbaik untuk menggunakan konten publik adalah menggabungkan autentikasi registri dan fitur Artefak Cache. Anda dapat menggunakan Artefak Cache untuk menyimpan artefak kontainer Ke Azure Container Registry Anda bahkan di jaringan privat. Menggunakan Artifact Cache tidak hanya melindungi Anda dari batas laju registri, tetapi secara dramatis meningkatkan keandalan penarikan ketika dikombinasikan dengan ACR yang direplikasi secara geografis untuk menarik artefak dari wilayah mana pun yang paling dekat dengan sumber daya Azure Anda. Selain itu, Anda juga dapat menggunakan semua fitur keamanan yang ditawarkan ACR, termasuk jaringan privat, konfigurasi firewall, Perwakilan Layanan, dan banyak lagi. Untuk informasi lengkap tentang menggunakan konten publik dengan ACR Artifact Cache, lihat tutorial Artefak Cache .

Mendorong gambar ke registri kontainer Azure

Untuk mulai mengelola salinan gambar publik, Anda dapat membuat registri kontainer Azure jika belum memilikinya. Buat registri menggunakan Azure CLI, portal Microsoft Azure, Azure PowerShell, atau alat lainnya.

Sebagai langkah satu kali yang direkomendasikan, impor gambar dasar dan konten publik lainnya ke registri kontainer Azure Anda. Perintah az acr import di Azure CLI mendukung impor gambar dari registri publik seperti Docker Hub dan Microsoft Container Registry dan dari registri kontainer pribadi lainnya.

az acr import tidak memerlukan instalasi Docker lokal. Anda dapat menjalankannya dengan penginstalan lokal Azure CLI atau langsung di Azure Cloud Shell. Ini mendukung gambar dari jenis OS, gambar multi-arsitektur, atau artefak OCI seperti diagram Helm.

Tergantung kebutuhan organisasi, Anda dapat mengimpor ke registri khusus atau repositori di registri bersama.

az acr import \
  --name myregistry \
  --source docker.io/library/hello-world:latest \
  --image hello-world:latest \
  --username <Docker Hub username> \
  --password <Docker Hub token>

Memperbarui referensi gambar

Pengembang gambar aplikasi harus memastikan bahwa kode mereka mereferensikan konten lokal di bawah kendali mereka.

  • Perbarui referensi gambar untuk menggunakan registri pribadi. Misalnya, perbarui pernyataan FROM baseimage:v1 di Dockerfile ke FROM myregistry.azurecr.io/mybaseimage:v1
  • Konfigurasikan kredensial atau mekanisme autentikasi untuk menggunakan registri pribadi. Mekanisme sesungguhnya tergantung pada alat yang Anda gunakan untuk mengakses registri dan bagaimana Anda mengelola akses pengguna.
    • Jika Anda menggunakan kluster Kubernetes atau Azure Kubernetes Service untuk mengakses registri, lihat skenario autentikasi.
    • Pelajari selengkapnya tentang opsi autentikasi dengan registri kontainer Azure.

Mengotomatiskan pembaruan gambar aplikasi

Memperluas impor gambar, siapkan tugas Azure Container Registry untuk mengotomatiskan build gambar aplikasi saat gambar dasar diperbarui. Tugas build otomatis dapat melacak pembaruan gambar dasar dan pembaruan kode sumber.

Untuk contoh mendetail, lihat Cara menggunakan dan mempertahankan konten publik dengan Tugas Azure Container Registry.

Catatan

Satu tugas yang telah dikonfigurasi sebelumnya dapat secara otomatis membangun kembali setiap gambar aplikasi yang mereferensikan gambar dasar dependen.

Langkah berikutnya