Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Artikel ini menyediakan gambaran umum praktik dan alur kerja untuk menggunakan registri lokal, seperti registri kontainer Azure untuk mempertahankan salinan konten publik, termasuk gambar kontainer di Docker Hub.
Risiko dengan konten publik
Lingkungan Anda mungkin bergantung pada konten publik, seperti gambar kontainer publik, bagan 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
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 alih-alih membuat permintaan pull anonim.
Ketika Anda sering membuat permintaan tarik anonim, Anda mungkin melihat kesalahan Docker yang mirip dengan ERROR: toomanyrequests: Too Many Requests. atau You have reached your pull rate limit.. Autentikasi ke Docker Hub untuk mencegah kesalahan ini.
Catatan
Batas tarif unduhan berlaku untuk permintaan anonim dan terautentikasi ke Docker Hub dari akun Paket Gratis Docker. Batas ini masing-masing diberlakukan oleh alamat IP dan ID Docker.
Untuk memperkirakan jumlah permintaan pull Anda, perlu diingat bahwa saat menggunakan layanan penyedia cloud atau bekerja di belakang NAT perusahaan, Docker Hub melihat beberapa pengguna sebagai bagian dari subset alamat IP yang terbatas. Dengan menambahkan autentikasi akun berbayar Docker ke permintaan yang dibuat ke Docker Hub, Anda dapat menghindari potensi gangguan layanan yang disebabkan oleh 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 penarikan gambar 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:
Layanan Aplikasi
- 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. Gunakan Artefak Cache untuk menyimpan artefak kontainer Anda ke Azure Container Registry Anda bahkan di jaringan privat. Menggunakan Artifact Cache tidak hanya melindungi Anda dari batas laju registri, tetapi juga secara dramatis meningkatkan keandalan penarikan ketika dikombinasikan dengan ACR yang direplikasi secara geografis untuk menarik artefak dari wilayah yang paling dekat dengan sumber daya Azure Anda. Selain itu, Anda 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 mengelola salinan gambar publik, buat registri kontainer Azure jika Anda belum memilikinya. Gunakan Azure CLI, portal Microsoft Azure, Azure PowerShell, atau alat lain untuk membuat registri.
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 privat.
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 apa pun, gambar multi-arsitektur, atau artefak OCI seperti chart 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 di Dockerfile ke
FROM myregistry.azurecr.io/mybaseimage:v1untuk registri non-DNL atauFROM myregistry-abc123.azurecr.io/mybaseimage:v1untuk registri berkemampuan DNL. Untuk detail selengkapnya tentang opsi DNL selama pembuatan registri dan implikasi nama DNS, lihat Mulai Cepat - Membuat Registri di Portal. - 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
Untuk mengotomatiskan build gambar aplikasi saat gambar dasar diperbarui, siapkan tugas Azure Container Registry. Pendekatan ini diperluas pada impor gambar. 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
- Pelajari lebih lanjut tentang Tugas ACR untuk membangun, menjalankan, mengunggah, dan memperbarui citra kontainer di Azure.
- Lihat Cara menggunakan dan memelihara konten publik dengan Tugas Azure Container Registry untuk alur kerja pengelolaan otomatis untuk memperbarui image dasar di lingkungan Anda.
- Lihat tutorial Tugas ACR untuk mendapatkan lebih banyak contoh cara mengotomatiskan pembuatan dan pembaruan citra.