Showing posts with label Azure Container Registry push and pull. Show all posts
Showing posts with label Azure Container Registry push and pull. Show all posts

Sunday, September 28, 2025

🚀 Step-by-Step Guide: Deploying Applications to Azure Kubernetes Service (AKS) with Docker

 When you’re building modern applications, you need scalability, reliability, and automation. That’s where Docker and Kubernetes come in. Docker helps you containerize applications, while Azure Kubernetes Service (AKS) helps you manage, scale, and deploy those containers in the Azure cloud.

In this article, we’ll cover how to go from local code (Git repository) to a running application in AKS, with a detailed step-by-step tutorial. This guide will help you deploy your app seamlessly in Azure Cloud using Docker and Kubernetes.


🔹 Why Use Azure Kubernetes Service (AKS)?

  • Scalability – Easily scale applications up or down.

  • High availability – AKS ensures your application is always running.

  • Integration – Works with Azure services like Azure Monitor, Azure DevOps, Azure Container Registry (ACR).

  • Cost-effective – Pay only for worker nodes, not for the control plane.



🔹 Prerequisites

Before starting, ensure you have:

  • An Azure Subscription (with permissions to create resources).

  • Azure CLI installed (az --version).

  • Docker Desktop or Docker CLI installed locally.

  • Kubectl CLI installed for Kubernetes commands.

  • A working Git repository or local code with a Dockerfile.

👉 SEO Keywords: Docker on Azure, Azure CLI setup, Deploy Kubernetes cluster in Azure


🔹 Step 1: Containerize Your Application with Docker

  1. In your project root, create a Dockerfile. Example for ASP.NET Core:

FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build WORKDIR /src COPY ["MyApp/MyApp.csproj", "MyApp/"] RUN dotnet restore "MyApp/MyApp.csproj" COPY . . WORKDIR "/src/MyApp" RUN dotnet publish "MyApp.csproj" -c Release -o /app/publish FROM mcr.microsoft.com/dotnet/aspnet:7.0 AS final WORKDIR /app COPY --from=build /app/publish . EXPOSE 80 ENTRYPOINT ["dotnet", "MyApp.dll"]
  1. Build and test locally:

docker build -t myapp:v1 . docker run -p 8080:80 myapp:v1



🔹 Step 2: Push Docker Image to Azure Container Registry (ACR)

AKS needs images from a container registry. Using Azure Container Registry (ACR) is secure and simple.

# Login to Azure az login # Create resource group az group create --name myResourceGroup --location eastus # Create ACR (name must be unique) az acr create --resource-group myResourceGroup --name myACRname --sku Standard # Login to ACR az acr login --name myACRname # Tag and push image ACR_LOGIN=$(az acr show -n myACRname -g myResourceGroup --query loginServer -o tsv) docker tag myapp:v1 $ACR_LOGIN/myapp:v1 docker push $ACR_LOGIN/myapp:v1



🔹 Step 3: Create Azure Kubernetes Service (AKS) Cluster

az aks create \ --resource-group myResourceGroup \ --name myAKSCluster \ --node-count 2 \ --enable-addons monitoring \ --generate-ssh-keys \ --enable-managed-identity



🔹 Step 4: Connect AKS with ACR

Attach your ACR to AKS so the cluster can pull images securely:

ACR_ID=$(az acr show -n myACRname -g myResourceGroup --query id -o tsv) az aks update -g myResourceGroup -n myAKSCluster --attach-acr $ACR_ID



🔹 Step 5: Deploy Your Application to AKS

Create a Kubernetes manifest file (deployment.yaml):

apiVersion: apps/v1 kind: Deployment metadata: name: myapp-deployment spec: replicas: 3 selector: matchLabels: app: myapp template: metadata: labels: app: myapp spec: containers: - name: myapp image: myacrname.azurecr.io/myapp:v1 ports: - containerPort: 80 --- apiVersion: v1 kind: Service metadata: name: myapp-service spec: type: LoadBalancer selector: app: myapp ports: - port: 80 targetPort: 80

Deploy using kubectl:

az aks get-credentials -g myResourceGroup -n myAKSCluster kubectl apply -f deployment.yaml kubectl get pods kubectl get svc myapp-service

Copy the EXTERNAL-IP and open it in a browser. 🎉 Your app is live in Azure Cloud!



🔹 Step 6: Production Enhancements

  • Use Ingress + NGINX Controller for domain-based routing.

  • Enable Azure Monitor for logs and performance tracking.

  • Configure readiness and liveness probes for high availability.

  • Automate builds using Azure DevOps or GitHub Actions CI/CD pipelines.



✅ Conclusion

Deploying applications with Docker and Azure Kubernetes Service (AKS) might sound complex, but once you understand the flow, it becomes straightforward:

  1. Code → Dockerize

  2. Push → Azure Container Registry

  3. Cluster → Create AKS

  4. Deploy → With Kubernetes manifests

This step-by-step guide helps you move from local development to enterprise-grade deployments in the cloud. With AKS, your applications become scalable, secure, and production-ready.

Blog Archive

Don't Copy

Protected by Copyscape Online Plagiarism Checker

Pages