Azure Fundamentals · पाठ

Azure Container Registry

निजी Azure Container Registry में Docker इमेज बनाएँ और पुश करें, भूमिका असाइनमेंट से पहुँच प्रबंधित करें और ACR Tasks से इमेज निर्माण स्वचालित करें।

पाठ 1, कुल 4 में से13 चरण

Azure Container Registry, CoddyKit पर Azure Fundamentals का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Azure Fundamentals सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Azure Fundamentals पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

Azure Container Registry क्या है?

Azure Container Registry (ACR) एक प्रबंधित, निजी Docker रजिस्ट्री सेवा है, जो ओपन-सोर्स Docker Registry 2.0 पर आधारित है। यह आपके Azure परिनियोजनों में उपयोग की जाने वाली कंटेनर इमेज और संबंधित आर्टिफैक्ट (Helm चार्ट, OCI आर्टिफैक्ट) को संग्रहीत और प्रबंधित करती है। ACR, Azure Kubernetes Service (AKS), Azure Container Instances (ACI) और App Service के साथ मूल रूप से एकीकृत होती है, जिससे क्रेडेंशियल प्रबंधित किए बिना सहज रूप से इमेज पुल की जा सकती है।

ACR सेवा टियर

ACR तीन सेवा टियर प्रदान करती है। Basic 10 GB स्टोरेज और सीमित वेबहुक समर्थन के साथ सीखने तथा कम-थ्रूपुट विकास के लिए लागत-अनुकूलित है। Standard में जियो-रेप्लिकेशन क्षमता और बढ़ा हुआ थ्रूपुट मिलता है — यह अधिकांश प्रोडक्शन वर्कलोड के लिए उपयुक्त है। Premium में जियो-रेप्लिकेशन, कंटेंट ट्रस्ट, निजी लिंक, ग्राहक-प्रबंधित कुंजियाँ और सबसे अधिक बैंडविड्थ शामिल हैं — उद्यम सुरक्षा आवश्यकताओं के लिए यह आवश्यक है।

# 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 table

ACR पर इमेज पुश करना

किसी Docker इमेज को ACR पर पुश करने के लिए Docker क्लाइंट को प्रमाणीकृत करें, अपनी स्थानीय इमेज को ACR लॉगिन सर्वर होस्टनेम से टैग करें और फिर पुश करें। ACR लॉगिन सर्वर URL का प्रारूप <registryname>.azurecr.io होता है। प्रमाणीकरण के लिए इंटरैक्टिव उपयोग में az acr login के माध्यम से आपके Azure AD क्रेडेंशियल, या स्वचालित पाइपलाइन के लिए ACR व्यवस्थापक पासवर्ड अथवा सेवा प्रिंसिपल का उपयोग किया जाता है।

# 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 myapp

ACR Tasks: क्लाउड-आधारित बिल्ड

ACR Tasks आपको स्थानीय Docker डेमन के बिना क्लाउड में Docker इमेज बनाने देती हैं। कोई त्वरित टास्क (az acr build) आपके बिल्ड संदर्भ को ACR पर भेजता है और Dockerfile को दूरस्थ रूप से चलाता है, जिससे रजिस्ट्री में सीधे संग्रहीत इमेज बनती है। शेड्यूल या ट्रिगर-आधारित टास्क तब आपकी इमेज को अपने-आप फिर से बना सकती हैं, जब बेस इमेज अपडेट हो या GitHub में कोड कमिट किया जाए। इससे अलग बिल्ड एजेंट के बिना पूरी कंटेनर CI पाइपलाइन सक्षम होती है।

# 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>

RBAC के साथ पहुँच नियंत्रण

ACR सूक्ष्म स्तर के पहुँच नियंत्रण के लिए Azure RBAC के साथ एकीकृत होती है। अंतर्निहित ACR भूमिकाओं में AcrPull (केवल इमेज पुल करना — परिनियोजन सेवाओं के लिए), AcrPush (पुल और पुश — CI/CD पाइपलाइन के लिए) और AcrDelete (इमेज टैग प्रबंधित करना) शामिल हैं। अपनी AKS या App Service managed identity को AcrPull भूमिका दें, ताकि कंटेनर कहीं भी संग्रहीत क्रेडेंशियल के बिना इमेज पुल कर सकें।

# 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_ID

वैश्विक परिनियोजन के लिए Geo-Replication

Geo-replication (Premium टियर) आपकी रजिस्ट्री को कई Azure क्षेत्रों में दोहराती है। जब किसी क्षेत्र में AKS या ACI कोई इमेज पुल करता है, तो वह दूरस्थ रजिस्ट्री के बजाय निकटतम प्रतिकृति से इमेज पढ़ता है, जिससे विलंबता और एग्रेस लागत घटती है। प्रतिकृति पारदर्शी होती है — वही इमेज URI विश्व स्तर पर काम करती है और ACR पुल अनुरोधों को अपने-आप भौगोलिक रूप से सबसे निकट की प्रतिकृति तक भेजती है।

# 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 table

कंटेंट ट्रस्ट और इमेज साइनिंग

Content trust (Premium टियर) Docker Notary का उपयोग करके सुनिश्चित करता है कि रजिस्ट्री से केवल हस्ताक्षरित इमेज ही पुल की जा सकें। ACR में कंटेंट ट्रस्ट सक्षम होने पर बिना हस्ताक्षर वाली इमेज अस्वीकार कर दी जाती हैं। साइनिंग CI पाइपलाइन में Docker Content Trust टूलचेन और विश्वसनीय कुंजी युग्म का उपयोग करके की जाती है। इससे ऐसे सप्लाई-चेन हमले रोके जाते हैं, जिनमें कोई दुर्भावनापूर्ण इमेज पुश करके प्रोडक्शन में परिनियोजित कर दी जाती है।

# 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)

Defender के साथ भेद्यता स्कैनिंग

ACR पर पुश की गई प्रत्येक इमेज में ज्ञात OS और अनुप्रयोग-स्तर की भेद्यताएँ (CVE) अपने-आप स्कैन करने के लिए Microsoft Defender for Containers सक्षम करें। Defender गंभीरता (Critical, High, Medium, Low) के अनुसार भेद्यताओं की सूची वाली रिपोर्ट बनाता है और सुधार संबंधी मार्गदर्शन प्रदान करता है। Azure Policy एकीकरण के माध्यम से आप ऐसी नीतियाँ कॉन्फ़िगर कर सकते हैं, जो गंभीर भेद्यताओं वाली इमेज को AKS क्लस्टर में परिनियोजित होने से रोकें।

# 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 table

ACR के लिए Private Endpoint

अधिकतम सुरक्षा के लिए ACR की सार्वजनिक नेटवर्क पहुँच अक्षम करें और अपने VNet के अंदर मौजूद private endpoint के माध्यम से ही उससे कनेक्ट करें। इससे यह सुनिश्चित होता है कि कंटेनर इमेज कभी भी सार्वजनिक इंटरनेट से स्थानांतरित न हों — सभी पुल Azure के निजी बैकबोन से होकर जाते हैं। रजिस्ट्री होस्टनेम को आपके VNet के अंदर निजी IP पते पर हल करने के लिए private DNS zone (privatelink.azurecr.io) कॉन्फ़िगर करें।

# 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 false

जीवनचक्र प्रबंधन: पुरानी इमेज हटाना

जीवनचक्र प्रबंधन के बिना, कंटेनर रजिस्ट्री में हज़ारों पुराने इमेज टैग जमा हो जाते हैं और महँगा स्टोरेज घेरते हैं। किसी निर्धारित अवधि से पुरानी बिना टैग वाली मैनिफ़ेस्ट और टैग हटाने के लिए ACR purge टास्क (अंतर्निहित टाइमर टास्क) का उपयोग करें। विशिष्ट रिपॉज़िटरी को लक्षित करते हुए और हाल के टैग की न्यूनतम संख्या बनाए रखते हुए az acr task create के साथ acr purge कमांड का उपयोग करके शेड्यूल पर purge चलाएँ।

# 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/null

ACR को AKS के साथ एकीकृत करना

AKS को ACR से जोड़ने का सबसे सरल तरीका az aks update --attach-acr command का उपयोग करना है। यह AKS managed identity को AcrPull role अपने-आप प्रदान करता है। जोड़ने के बाद, Kubernetes pod specs में images के लिए केवल पूरा ACR hostname दिया जाता है — imagePullSecrets की आवश्यकता नहीं होती, क्योंकि AKS node level पर authentication के लिए managed identity का पारदर्शी रूप से उपयोग करता है।

# 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.0

त्वरित जाँच

इस lesson में दिए गए Microsoft Azure Fundamentals (AZ-900) concepts की अपनी समझ जाँचिए।

Lesson का पुनरावलोकन

इस lesson में आपने सीखा: Azure Container Registry (ACR) एक managed private registry है, जो Docker images संग्रहीत करती है; ACR Tasks local Docker daemon के बिना cloud-based image builds सक्षम करते हैं; और RBAC roles (AcrPull, AcrPush) deployment services और CI/CD pipelines के access को नियंत्रित करते हैं। अब हम Azure Container Instances का अध्ययन करेंगे।

शुरुआत निःशुल्क

एआई शिक्षक के साथ Azure Fundamentals सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
30
पाठ
120

अक्सर पूछे जाने वाले प्रश्न

क्या “Azure Container Registry” पाठ निःशुल्क है?

हाँ—“Azure Container Registry” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Azure Fundamentals पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Azure Fundamentals पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“Azure Container Registry” में मैं क्या सीखूँगा?

निजी Azure Container Registry में Docker इमेज बनाएँ और पुश करें, भूमिका असाइनमेंट से पहुँच प्रबंधित करें और ACR Tasks से इमेज निर्माण स्वचालित करें। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Azure Fundamentals का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Azure Fundamentals शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Azure Fundamentals शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।

“Azure Container Registry” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Azure Fundamentals पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Azure Fundamentals पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. Azure Container Registry
  2. Azure Container Instances
  3. Azure के लिए Kubernetes की अवधारणाएँ
  4. AKS पर कार्यभार तैनात करना
← Azure Fundamentals पर वापस जाएँ