Azure Container Registry
Buat dan dorong image Docker ke Azure Container Registry privat, kelola akses dengan penetapan peran, lalu otomatisasi pembuatan image dengan ACR Tasks.
Azure Container Registry adalah pelajaran Cloud & IT Cert Prep gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cloud & IT Cert Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.
Apa Itu Azure Container Registry?
Azure Container Registry (ACR) adalah layanan registry Docker privat terkelola yang dibangun berdasarkan Docker Registry 2.0 sumber terbuka. Layanan ini menyimpan dan mengelola image kontainer serta artefak terkait (chart Helm, artefak OCI) yang digunakan oleh deployment Azure Anda. ACR terintegrasi secara native dengan Azure Kubernetes Service (AKS), Azure Container Instances (ACI), dan App Service sehingga image dapat diambil dengan lancar tanpa mengelola kredensial.
Tingkat Layanan ACR
ACR menawarkan tiga tingkat layanan. Basic dioptimalkan dari sisi biaya untuk pembelajaran dan pengembangan dengan throughput rendah, dengan penyimpanan 10 GB dan dukungan webhook terbatas. Standard menambahkan kemampuan replikasi geografis dan throughput yang lebih tinggi — sesuai untuk sebagian besar beban kerja produksi. Premium mencakup replikasi geografis, kepercayaan konten, tautan privat, kunci yang dikelola pelanggan, dan bandwidth tertinggi — diperlukan untuk persyaratan keamanan perusahaan.
# Create a Premium ACR in East US
az acr create \
--name mycontainerregistry \
--resource-group MyRG \
--location eastus \
--sku Premium
# List ACR instances in the subscription
az acr list --query '[].{name:name, sku:sku.name, loginServer:loginServer}' -o tableMendorong Image ke ACR
Untuk mendorong image Docker ke ACR, lakukan autentikasi pada klien Docker, beri tag pada image lokal Anda menggunakan nama host server masuk ACR, lalu dorong image tersebut. URL server masuk ACR mengikuti pola <registryname>.azurecr.io. Autentikasi menggunakan kredensial Azure AD melalui az acr login (untuk penggunaan interaktif), atau kata sandi admin ACR maupun principal layanan untuk pipeline otomatis.
# Authenticate to ACR
az acr login --name mycontainerregistry
# Tag a local image for ACR
docker tag myapp:latest mycontainerregistry.azurecr.io/myapp:v1.0
# Push the image
docker push mycontainerregistry.azurecr.io/myapp:v1.0
# List images in the registry
az acr repository list --name mycontainerregistry -o table
az acr repository show-tags --name mycontainerregistry --repository myappACR Tasks: Build Berbasis Cloud
ACR Tasks memungkinkan Anda membangun image Docker di cloud tanpa daemon Docker lokal. Tugas cepat (az acr build) mengirim konteks build Anda ke ACR dan menjalankan Dockerfile dari jarak jauh, lalu menghasilkan image yang langsung disimpan di registry. Tugas terjadwal atau berbasis pemicu dapat membangun ulang image secara otomatis saat image dasar diperbarui atau saat kode dikomit ke GitHub, sehingga memungkinkan pipeline CI kontainer lengkap tanpa agen build terpisah.
# Quick task: build and push without local Docker
az acr build \
--registry mycontainerregistry \
--image myapp:v1.0 \
. # build context (current directory with Dockerfile)
# Define a multi-step ACR Task triggered on commit
az acr task create \
--name buildAndTest \
--registry mycontainerregistry \
--context https://github.com/myorg/myrepo.git \
--file acr-task.yaml \
--git-access-token <GITHUB_PAT>Kontrol Akses dengan RBAC
ACR terintegrasi dengan Azure RBAC untuk kontrol akses terperinci. Peran ACR bawaan mencakup AcrPull (hanya mengambil image — untuk layanan deployment), AcrPush (mengambil dan mendorong image — untuk pipeline CI/CD), dan AcrDelete (mengelola tag image). Tetapkan peran AcrPull kepada identitas terkelola AKS atau App Service Anda agar kontainer dapat mengambil image tanpa kredensial yang disimpan di mana pun.
# Grant AKS cluster's managed identity the AcrPull role
ACR_ID=$(az acr show --name mycontainerregistry --resource-group MyRG --query id -o tsv)
AKS_IDENTITY=$(az aks show --name myAKSCluster --resource-group MyRG \
--query identityProfile.kubeletidentity.objectId -o tsv)
az role assignment create \
--assignee $AKS_IDENTITY \
--role AcrPull \
--scope $ACR_IDReplikasi Geografis untuk Deployment Global
Replikasi geografis (tingkat Premium) mereplikasi registry Anda ke beberapa region Azure. Saat AKS atau ACI di suatu region mengambil image, layanan tersebut membacanya dari replika terdekat, bukan dari registry jarak jauh, sehingga mengurangi latensi dan biaya egress. Replikasi berlangsung secara transparan — URI image yang sama berfungsi secara global, dan ACR secara otomatis merutekan permintaan pengambilan ke replika yang paling dekat secara geografis.
# Add a geo-replication to West Europe
az acr replication create \
--name westeurope \
--registry mycontainerregistry \
--location westeurope
# List all replicas
az acr replication list \
--registry mycontainerregistry \
--query '[].{name:name, location:location, status:provisioningState}' -o tableKepercayaan Konten dan Penandatanganan Image
Kepercayaan konten (tingkat Premium) menggunakan Docker Notary untuk memastikan bahwa hanya image yang ditandatangani yang dapat diambil dari registry. Saat kepercayaan konten diaktifkan pada ACR, image yang tidak ditandatangani akan ditolak. Penandatanganan dilakukan dalam pipeline CI menggunakan toolchain Docker Content Trust dan pasangan kunci tepercaya. Hal ini mencegah serangan rantai pasokan ketika image berbahaya didorong lalu di-deploy ke produksi.
# Enable content trust on the registry
az acr config content-trust update \
--registry mycontainerregistry \
--status enabled
# Sign an image when pushing (DOCKER_CONTENT_TRUST env var)
# export DOCKER_CONTENT_TRUST=1
# docker push mycontainerregistry.azurecr.io/myapp:v1.0
# (Docker prompts for signing key passphrase)Pemindaian Kerentanan dengan Defender
Aktifkan Microsoft Defender for Containers untuk memindai setiap image yang didorong ke ACR secara otomatis terhadap kerentanan yang diketahui pada lapisan OS dan aplikasi (CVE). Defender menghasilkan laporan yang mencantumkan kerentanan berdasarkan tingkat keparahan (Kritis, Tinggi, Sedang, Rendah) dan memberikan panduan remediasi. Anda dapat mengonfigurasi kebijakan untuk memblokir deployment image dengan kerentanan kritis ke klaster AKS melalui integrasi Azure Policy.
# Enable Defender for Containers on the subscription
az security pricing create \
--name Containers \
--tier Standard
# View vulnerability assessment results
az security assessment list \
--query "[?contains(displayName, 'Container')].{name:displayName, status:status.code}" \
-o tableEndpoint Privat untuk ACR
Untuk keamanan maksimum, nonaktifkan akses jaringan publik ACR dan sambungkan ke ACR hanya melalui endpoint privat di dalam VNet Anda. Hal ini memastikan image kontainer tidak pernah ditransfer melalui internet publik — semua pengambilan berlangsung melalui backbone privat Azure. Konfigurasikan zona DNS privat (privatelink.azurecr.io) untuk mengarahkan nama host registry ke alamat IP privat di dalam VNet Anda.
# Create a private endpoint for ACR
az network private-endpoint create \
--name acr-private-endpoint \
--resource-group MyRG \
--vnet-name MyVNet \
--subnet PrivateEndpointSubnet \
--private-connection-resource-id \
$(az acr show --name mycontainerregistry --query id -o tsv) \
--group-id registry \
--connection-name acrConnection
# Disable public access
az acr update \
--name mycontainerregistry \
--public-network-enabled falsePengelolaan Siklus Hidup: Menghapus Image Lama
Tanpa pengelolaan siklus hidup, registry kontainer akan menumpuk ribuan tag image lama yang menghabiskan penyimpanan mahal. Gunakan tugas pembersihan ACR (tugas pengatur waktu bawaan) untuk menghapus manifes dan tag tanpa tag yang lebih lama dari durasi tertentu. Jalankan pembersihan secara terjadwal menggunakan az acr task create dengan perintah acr purge, dengan menargetkan repositori tertentu dan mempertahankan jumlah minimum tag terbaru.
# Create a scheduled purge task: delete tags older than 30d
az acr task create \
--name scheduledPurge \
--registry mycontainerregistry \
--cmd 'acr purge --filter myapp:.* --ago 30d --keep 5 --untagged' \
--schedule '0 1 * * *' \
--context /dev/nullMengintegrasikan ACR dengan AKS
Cara paling sederhana untuk menghubungkan AKS ke ACR adalah menggunakan perintah az aks update --attach-acr, yang secara otomatis memberikan peran AcrPull kepada identitas terkelola AKS. Setelah terhubung, spesifikasi pod Kubernetes merujuk image hanya menggunakan nama host ACR lengkap — imagePullSecrets tidak diperlukan karena AKS menggunakan identitas terkelola untuk autentikasi secara transparan di tingkat node.
# Attach ACR to an existing AKS cluster
az aks update \
--name myAKSCluster \
--resource-group MyRG \
--attach-acr mycontainerregistry
# Now pods can use ACR images without imagePullSecrets
# Example pod spec:
# spec:
# containers:
# - name: myapp
# image: mycontainerregistry.azurecr.io/myapp:v1.0Pemeriksaan Singkat
Uji pemahaman Anda tentang konsep Microsoft Azure Fundamentals (AZ-900) dari pelajaran ini.
Ringkasan Pelajaran
Dalam pelajaran ini, Anda mempelajari bahwa Azure Container Registry (ACR) adalah registri privat terkelola untuk menyimpan image Docker, ACR Tasks memungkinkan pembuatan image berbasis cloud tanpa daemon Docker lokal, dan RBAC roles (AcrPull, AcrPush) mengontrol akses untuk layanan deployment dan pipeline CI/CD. Selanjutnya, kita akan mempelajari Azure Container Instances.
Belajar Cloud & IT Cert Prep dengan tutor AI — gratis
Tulis dan jalankan kode asli di browser kamu, dapatkan bantuan instan dari tutor AI 24/7, dan lanjutkan di mana kamu tinggalkan di web atau aplikasi.
- Kursus
- 150
- Pelajaran
- 600
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Azure Container Registry” gratis?
Ya — teks lengkap “Azure Container Registry” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cloud & IT Cert Prep, upgrade ke CoddyKit PRO. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Azure Container Registry”?
Buat dan dorong image Docker ke Azure Container Registry privat, kelola akses dengan penetapan peran, lalu otomatisasi pembuatan image dengan ACR Tasks. Kamu berlatih Cloud & IT Cert Prep dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Cloud & IT Cert Prep?
Tidak diperlukan pengalaman sebelumnya. Cloud & IT Cert Prep di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Azure Container Registry” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Cloud & IT Cert Prep ini?
Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Azure Container Registry
- Azure Container Instances
- Konsep Kubernetes untuk Azure
- Menerapkan Beban Kerja di AKS