<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Funmilola Elizabeth Musari </title>
    <description>The latest articles on DEV Community by Funmilola Elizabeth Musari  (@betty_babs_f40c2ed0166cb7).</description>
    <link>https://dev.to/betty_babs_f40c2ed0166cb7</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3441727%2F688c7364-f42b-4d94-a6a7-dc255d01446d.jpg</url>
      <title>DEV Community: Funmilola Elizabeth Musari </title>
      <link>https://dev.to/betty_babs_f40c2ed0166cb7</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/betty_babs_f40c2ed0166cb7"/>
    <language>en</language>
    <item>
      <title>From Docker Daemon Errors to ACI Success: A Cloud Deployment Story</title>
      <dc:creator>Funmilola Elizabeth Musari </dc:creator>
      <pubDate>Wed, 20 Aug 2025 10:18:34 +0000</pubDate>
      <link>https://dev.to/betty_babs_f40c2ed0166cb7/from-docker-daemon-errors-to-aci-success-a-cloud-deployment-story-32da</link>
      <guid>https://dev.to/betty_babs_f40c2ed0166cb7/from-docker-daemon-errors-to-aci-success-a-cloud-deployment-story-32da</guid>
      <description>&lt;p&gt;Hey everyone! 👋 I recently went through a classic "it works on my machine" scenario... except my machine was the Azure Cloud Shell, and it didn't work. Here’s a quick story of how I hit a Docker wall and used native Azure tools to successfully deploy my static fashion site to Azure Container Instances (ACI).&lt;/p&gt;

&lt;p&gt;Let's rewind. I was logged into the Azure Portal, staring at my resource group, ready to deploy my static site. My plan was simple: use the Azure Cloud Shell to run a quick docker build and docker push.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fegea8gs3dq3siuti0yad.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fegea8gs3dq3siuti0yad.png" alt=" " width="800" height="120"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I clicked that little &amp;gt;_ icon in the portal's header and got to work. Little did I know, I was about to hit a classic "gotcha" and find an even better solution.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl8xu4to9zfz2i3f8kgsk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl8xu4to9zfz2i3f8kgsk.png" alt=" " width="426" height="119"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here's how it went down.&lt;/p&gt;

&lt;p&gt;Spoiler: It involves az acr build and a triumphant fist pump. ✊&lt;/p&gt;

&lt;p&gt;The Goal: Simple Static Site in the Cloud&lt;br&gt;
I needed to get a simple static site (HTML + CSS) for Lyzola Fashion House up and running quickly. &lt;br&gt;
My go-to plan:&lt;br&gt;
Write a Dockerfile (using NGINX)&lt;br&gt;
Build the image&lt;br&gt;
Push to Azure Container Registry (ACR)&lt;br&gt;
Deploy to Azure Container Instances (ACI)&lt;/p&gt;

&lt;p&gt;Simple, right? Well...&lt;br&gt;
Here's how it went down.&lt;/p&gt;

&lt;h2&gt;
  
  
  🎬 Act 1: Building from the Ground Up in the Shell
&lt;/h2&gt;

&lt;p&gt;The Azure Cloud Shell became my entire workspace. No fancy IDEs, no local file uploads—just a pure, classic terminal experience. Here’s how I built my project from scratch, right there in the browser:&lt;/p&gt;

&lt;p&gt;I created a project directory and moved into it:&lt;br&gt;
&lt;code&gt;mkdir lyzola-fashion&lt;br&gt;
cd lyzola-fashion&lt;/code&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxdnjfml99wu17a8m0jh2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxdnjfml99wu17a8m0jh2.png" alt=" " width="564" height="71"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I wrote my index.html file using nano: &lt;code&gt;nano index.html&lt;/code&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7p3m5c194tlsmlle9o6y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7p3m5c194tlsmlle9o6y.png" alt=" " width="800" height="253"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I pasted in my HTML code, saved the file (Ctrl+O, Enter), and exited (Ctrl+X).&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgeyqy6c2hv1zp1r44e1n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgeyqy6c2hv1zp1r44e1n.png" alt=" " width="800" height="277"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I created a css directory and a stylesheet:&lt;br&gt;
&lt;code&gt;mkdir css&lt;br&gt;
nano css/style.css&lt;/code&gt;&lt;br&gt;
Added my styles, saved, and exited.&lt;/p&gt;

&lt;p&gt;Finally, I crafted my Dockerfile the same way:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi8g1rnh82topb6zs93v7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi8g1rnh82topb6zs93v7.png" alt=" " width="505" height="97"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;code&gt;nano Dockerfile&lt;/code&gt;&lt;br&gt;
I typed it out line by line, saved it, and was ready to go.&lt;/p&gt;

&lt;p&gt;Feeling confident with my files created the old-school way, I ran the classic command to build my image:&lt;/p&gt;

&lt;p&gt;docker build -t lyzolaregistry.azurecr.io/lyzola:v1 .&lt;br&gt;
And then, the moment of truth... or error.&lt;/p&gt;

&lt;p&gt;ERROR: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?&lt;/p&gt;

&lt;p&gt;Wait, what? The Cloud Shell doesn’t have a Docker daemon? I was stunned. My entire plan, built on those carefully crafted files, was suddenly dead in the water. My two-minute deployment had just evaporated.&lt;/p&gt;

&lt;h2&gt;
  
  
  💡 Act 2: The "Aha!" Moment with ACR Tasks
&lt;/h2&gt;

&lt;p&gt;Sitting in the Cloud Shell, surrounded by the files I just created with nano, I had to pivot. I couldn't build locally, but I was already in the cloud. That's when I remembered Azure Container Registry Tasks.&lt;/p&gt;

&lt;p&gt;Instead of fighting the environment, I used a tool designed for it. The az acr build command uses the contents of the current directory and offloads the build process to Azure itself. No Docker on the client needed!&lt;/p&gt;

&lt;p&gt;From the same /lyzola-fashion directory in my Cloud Shell, I ran:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;az acr build --registry lyzolaregistry --image lyzola:v1 .&lt;/code&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6y3ybmyqoqqnd88bmz7g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6y3ybmyqoqqnd88bmz7g.png" alt=" " width="800" height="258"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F74it2p7fb3w77r2kjm8k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F74it2p7fb3w77r2kjm8k.png" alt=" " width="800" height="503"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy1qdoj3asjoy58y6v1w1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy1qdoj3asjoy58y6v1w1.png" alt=" " width="800" height="544"&gt;&lt;/a&gt;&lt;br&gt;
The logs streamed back to my console just like a local build, but the heavy lifting was happening securely in my ACR. It took the local files I had just written and built them in the cloud. Problem solved!&lt;/p&gt;

&lt;h2&gt;
  
  
  🚀 Act 3: Deploying from the Cloud Shell
&lt;/h2&gt;

&lt;p&gt;With the image built and snugly stored in my registry, the rest was smooth sailing. Still in my trusted Cloud Shell, I deployed it to Azure Container Instances (ACI) with one command:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;az container create \&lt;br&gt;
  --resource-group myResourceGroup \&lt;br&gt;
  --name lyzola-container \&lt;br&gt;
  --image lyzolaregistry.azurecr.io/lyzola:v1 \&lt;br&gt;
  --dns-name-label lyzola-unique-dns \&lt;br&gt;
  --ports 80 \&lt;br&gt;
  --registry-login-server lyzolaregistry.azurecr.io \&lt;br&gt;
  --registry-username $REGISTRY_USERNAME \&lt;br&gt;
  --registry-password $REGISTRY_PASSWORD&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Initially, an error popped up, showing "subscription not registered to use namespace 'Microsoft.ContainerRegistry'. " &lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fglivyef1q8b87oxirwmj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fglivyef1q8b87oxirwmj.png" alt=" " width="800" height="139"&gt;&lt;/a&gt;&lt;br&gt;
This was corrected by registering the subscription&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyppht00gc2nesgt2prnc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyppht00gc2nesgt2prnc.png" alt=" " width="800" height="163"&gt;&lt;/a&gt;&lt;br&gt;
Confirm registration&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxgkrvxxpsxtwk3wkrp2p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxgkrvxxpsxtwk3wkrp2p.png" alt=" " width="791" height="164"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then I ran the create command again with success, as seen below:                 &lt;/p&gt;

&lt;p&gt;&lt;code&gt;az container create \&lt;br&gt;
  --resource-group lyzola-rg \&lt;br&gt;
  --name lyzola-aci \&lt;br&gt;
  --image lyzolaregistry.azurecr.io/lyzola:v4 \&lt;br&gt;
  --cpu 1 --memory 1 \&lt;br&gt;
  --registry-login-server lyzolaregistry.azurecr.io \&lt;br&gt;
  --registry-username $REGISTRY_USER \&lt;br&gt;
  --registry-password $REGISTRY_PASSWORD \&lt;br&gt;
  --ports 80 \&lt;br&gt;
  --dns-name-label lyzola-aci-demo-${RANDOM} \&lt;br&gt;
  --os-type Linux&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Added randomness for uniqueness&lt;br&gt;
The critical flag here is --dns-name-label, which gives your container a public-facing URL under the azurecontainer.io domain.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fherghfos6nwv8yuakx9q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fherghfos6nwv8yuakx9q.png" alt=" " width="800" height="482"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F016neijp6kcpi59ol8g2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F016neijp6kcpi59ol8g2.png" alt=" " width="800" height="391"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyozvjkfc1olwjtryzw52.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyozvjkfc1olwjtryzw52.png" alt=" " width="800" height="554"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdnok4f1ji1clr22jmw2i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdnok4f1ji1clr22jmw2i.png" alt=" " width="708" height="165"&gt;&lt;/a&gt; &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ytzyiskl1b72syyzr3l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ytzyiskl1b72syyzr3l.png" alt=" " width="800" height="331"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A quick follow-up command to get my URL:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;az container show --name lyzola-container --resource-group myResourceGroup --query ipAddress.fqdn -o tsv&lt;/code&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F274el50zmtlm1jm3fp4d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F274el50zmtlm1jm3fp4d.png" alt=" " width="800" height="498"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  The Deployment: Getting it Live on ACI
&lt;/h3&gt;

&lt;p&gt;I copied the output URL, pasted it into a new tab, and there it was: &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu993lzg558k5afg75e4w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu993lzg558k5afg75e4w.png" alt=" " width="800" height="308"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;My site, built from the ground up in a terminal, now live on the internet! All without ever needing Docker on my local machine or in the Cloud Shell.&lt;/p&gt;

&lt;h3&gt;
  
  
  🧹 Step 5: Cleanup Duty
&lt;/h3&gt;

&lt;p&gt;Being a good DevOps citizen, I cleaned up my mess:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;az container delete \&lt;br&gt;
  --resource-group lyzola-rg \&lt;br&gt;
  --name lyzola-aci \&lt;br&gt;
  --yes&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Cloud Shell threw an authentication tantrum:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;Timeout waiting for token...&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Solution: log back in interactively.&lt;/p&gt;

&lt;p&gt;&lt;code&gt;az login --scope https://management.core.windows.net//.default&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Once I re-authenticated with the device code, deletion worked. Then I wiped my local files too:&lt;/p&gt;

&lt;p&gt;&lt;code&gt;rm -rf lyzola-fashion Dockerfile index.html&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F963x4y52xvkfl8n62c25.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F963x4y52xvkfl8n62c25.png" alt=" " width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fik758j9tyxbtxse0oduv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fik758j9tyxbtxse0oduv.png" alt=" " width="630" height="257"&gt;&lt;/a&gt;&lt;br&gt;
Fresh slate, happy engineer 😎.&lt;/p&gt;

&lt;h2&gt;
  
  
  ✅ Key Takeaways
&lt;/h2&gt;

&lt;p&gt;You Can Build Anything in a Shell: You don't need an IDE or a complex setup. A terminal, nano, and your knowledge are enough to get started.&lt;/p&gt;

&lt;p&gt;Cloud Shell ≠ Docker Host: It's a common misconception. The Cloud Shell is for managing Azure resources, not for running Docker daemons.&lt;/p&gt;

&lt;p&gt;Embrace Cloud-Native Workflows: When you hit a wall, there's often a better, integrated way. az acr build is a perfect example—it uses your local context (the current directory) but executes the build in the cloud, which is more secure and doesn't tie up your local machine.&lt;/p&gt;

&lt;p&gt;The Power of the Integrated Shell: This entire process—from writing code in nano to a successful deployment—happened in a single browser tab. The power of cloud tooling is incredible.&lt;/p&gt;

&lt;p&gt;The next time you're in the Azure Portal and need to get something done, let the Cloud Shell be your starting point. You might be surprised at what you can accomplish without ever leaving your browser.&lt;/p&gt;

&lt;p&gt;A single command handled the build and push seamlessly:&lt;br&gt;
Azure Cloud Shell ≠ Docker Host: You can't run docker build or docker run there. It's a common gotcha.&lt;/p&gt;

&lt;p&gt;Use az acr build: For a seamless, authenticated, and daemon-less build and push experience directly to your Azure Container Registry.&lt;/p&gt;

&lt;p&gt;Don't forget the --dns-name-label: This is the easiest way to get a public URL for your Azure Container Instance. Make it unique or use a trick like $RANDOM.&lt;/p&gt;

&lt;p&gt;The Azure CLI is your friend: Everything from build to deploy can be done in a few commands, making it perfect for automation scripts.&lt;/p&gt;

&lt;p&gt;This whole process is a great example of using cloud-native tools to simplify your workflow and get around common hurdles.&lt;/p&gt;

&lt;p&gt;Have you run into the Docker daemon issue in Cloud Shell? How do you handle your container builds? Let me know in the comments&lt;/p&gt;

</description>
      <category>azure</category>
      <category>docker</category>
      <category>staticwebapps</category>
      <category>devops</category>
    </item>
    <item>
      <title>🚢 Mastering Docker: Build and Share Your First Container Image on DockerHub</title>
      <dc:creator>Funmilola Elizabeth Musari </dc:creator>
      <pubDate>Mon, 18 Aug 2025 10:11:58 +0000</pubDate>
      <link>https://dev.to/betty_babs_f40c2ed0166cb7/mastering-docker-build-and-share-your-first-container-image-on-dockerhub-55cg</link>
      <guid>https://dev.to/betty_babs_f40c2ed0166cb7/mastering-docker-build-and-share-your-first-container-image-on-dockerhub-55cg</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Introduction&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Welcome, future Docker pro! 🐳 Have you ever wondered how developers share applications in lightweight, portable containers? Or how to deploy the same environment from your laptop to a server in seconds? The answer lies in &lt;strong&gt;Docker images&lt;/strong&gt;.  &lt;/p&gt;

&lt;p&gt;In this guide, you’ll learn:&lt;br&gt;&lt;br&gt;
✔ How to build a Docker image from a &lt;code&gt;Dockerfile&lt;/code&gt;&lt;br&gt;&lt;br&gt;
✔ Push it to &lt;strong&gt;DockerHub&lt;/strong&gt; (shareable anywhere!)&lt;br&gt;&lt;br&gt;
✔ Modify and update your image  &lt;/p&gt;


&lt;h2&gt;
  
  
  &lt;strong&gt;Key Concepts&lt;/strong&gt;
&lt;/h2&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;1. What’s a Container?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;container&lt;/strong&gt; is a lightweight, standalone package that includes:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;OS-level virtualization&lt;/strong&gt; (only the essentials, not the whole OS)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Isolated dependencies&lt;/strong&gt; (no more &lt;em&gt;"works on my machine"&lt;/em&gt; issues)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Portability&lt;/strong&gt; (runs identically on any system)
&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;
  
  
  &lt;strong&gt;Common Use Cases&lt;/strong&gt;
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Running microservices
&lt;/li&gt;
&lt;li&gt;CI/CD pipelines
&lt;/li&gt;
&lt;li&gt;Ensuring dev/production parity
&lt;/li&gt;
&lt;li&gt;Building scalable architectures
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3&gt;
  
  
  &lt;strong&gt;2. What’s a Docker Image?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;read-only template&lt;/strong&gt; to create containers. Includes:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your application code
&lt;/li&gt;
&lt;li&gt;Libraries/dependencies
&lt;/li&gt;
&lt;li&gt;Configuration files
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Popular Base Images&lt;/strong&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;ubuntu  &lt;span class="c"&gt;# Minimal OS&lt;/span&gt;
nginx   &lt;span class="c"&gt;# Web server&lt;/span&gt;
python  &lt;span class="c"&gt;# Python apps&lt;/span&gt;
redis   &lt;span class="c"&gt;# Database&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;3. What’s DockerHub?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;A &lt;strong&gt;cloud registry&lt;/strong&gt; to store/share Docker images. Alternatives:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Azure Container Registry
&lt;/li&gt;
&lt;li&gt;Google Container Registry
&lt;/li&gt;
&lt;li&gt;Amazon ECR
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Prerequisites&lt;/strong&gt;
&lt;/h2&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Docker installed&lt;/strong&gt; (&lt;a href="https://docs.docker.com/engine/install/ubuntu/" rel="noopener noreferrer"&gt;Install guide&lt;/a&gt;)
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;DockerHub account&lt;/strong&gt; (&lt;a href="https://hub.docker.com/signup" rel="noopener noreferrer"&gt;Sign up&lt;/a&gt;)
&lt;/li&gt;
&lt;/ol&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Step-by-Step Guide&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 1: Update System Packages&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;sudo &lt;/span&gt;su
apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; apt upgrade &lt;span class="nt"&gt;-y&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Step 2: Create a Project Directory&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;mkdir &lt;/span&gt;mydockerproject
&lt;span class="nb"&gt;cd &lt;/span&gt;mydockerproject
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Step 3: Create a Dockerfile&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;vi Dockerfile
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Paste this (press &lt;code&gt;i&lt;/code&gt; to insert, &lt;code&gt;ESC&lt;/code&gt; + &lt;code&gt;:wq&lt;/code&gt; to save):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="k"&gt;FROM&lt;/span&gt;&lt;span class="s"&gt; ubuntu:latest&lt;/span&gt;
&lt;span class="k"&gt;RUN &lt;/span&gt;apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; apt &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; nginx
&lt;span class="k"&gt;CMD&lt;/span&gt;&lt;span class="s"&gt; ["echo", "Hello from your first Docker container!"]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Step 4: Build the Image&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker build &lt;span class="nt"&gt;-t&lt;/span&gt; mydocker &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Verify:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker image &lt;span class="nb"&gt;ls&lt;/span&gt;  &lt;span class="c"&gt;# Lists all images&lt;/span&gt;
docker run &lt;span class="nt"&gt;--rm&lt;/span&gt; mydocker  &lt;span class="c"&gt;# Test the container&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;Step 5: Create a DockerHub Repository&lt;/strong&gt;
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Go to &lt;a href="https://hub.docker.com/" rel="noopener noreferrer"&gt;DockerHub&lt;/a&gt;.
&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;"Create Repository"&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Name it (e.g., &lt;code&gt;mydocker-image&lt;/code&gt;), set visibility to &lt;strong&gt;Public&lt;/strong&gt;, and add a description.
&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Step 6: Push to DockerHub&lt;/strong&gt;
&lt;/h3&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;6.1 Log in to DockerHub&lt;/strong&gt;
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker login
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  &lt;strong&gt;6.2 Tag Your Image&lt;/strong&gt;
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker tag mydocker yourusername/repositoryname:tag
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h4&gt;
  
  
  &lt;strong&gt;6.3 Push the Image&lt;/strong&gt;
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker push yourusername/repositoryname:tag
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Verify&lt;/strong&gt;: Refresh your DockerHub repository—your image should appear!  &lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;🛠️ Updating Your Image&lt;/strong&gt;
&lt;/h2&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;1. Modify the Dockerfile&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Example changes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight docker"&gt;&lt;code&gt;&lt;span class="k"&gt;RUN &lt;/span&gt;apt update &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; apt &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-y&lt;/span&gt; curl  &lt;span class="c"&gt;# Added curl&lt;/span&gt;
&lt;span class="k"&gt;CMD&lt;/span&gt;&lt;span class="s"&gt; ["echo", "Welcome to Docker!"]    # Updated message&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;2. Rebuild with a New Tag&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker build &lt;span class="nt"&gt;-t&lt;/span&gt; yourusername/repositoryname:newtag &lt;span class="nb"&gt;.&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  &lt;strong&gt;3. Push the Updated Image&lt;/strong&gt;
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;docker push yourusername/repositoryname:newtag
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  &lt;strong&gt;Next Steps&lt;/strong&gt;
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Pull the image elsewhere: &lt;code&gt;docker pull yourusername/repositoryname:tag&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Explore &lt;strong&gt;multi-stage builds&lt;/strong&gt; for smaller images.
&lt;/li&gt;
&lt;li&gt;Learn &lt;strong&gt;Docker Compose&lt;/strong&gt; for multi-container apps.
&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;🎉 Conclusion&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;You’ve now mastered:&lt;br&gt;&lt;br&gt;
✅ Building Docker images&lt;br&gt;&lt;br&gt;
✅ Sharing them via DockerHub&lt;br&gt;&lt;br&gt;
✅ Updating images efficiently  &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Happy Dockering!&lt;/strong&gt; 🐋✨  &lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>devops</category>
      <category>docker</category>
    </item>
    <item>
      <title>🌟 Hello Dev.to! My Journey into DevOps</title>
      <dc:creator>Funmilola Elizabeth Musari </dc:creator>
      <pubDate>Mon, 18 Aug 2025 07:39:53 +0000</pubDate>
      <link>https://dev.to/betty_babs_f40c2ed0166cb7/hello-devto-my-journey-into-devops-c12</link>
      <guid>https://dev.to/betty_babs_f40c2ed0166cb7/hello-devto-my-journey-into-devops-c12</guid>
      <description>&lt;p&gt;Hi Dev.to community 👋🏽  &lt;/p&gt;

&lt;p&gt;I’m &lt;strong&gt;Betty&lt;/strong&gt;, an aspiring &lt;strong&gt;DevOps Engineer&lt;/strong&gt; transitioning from a Food Technology background into the world of Cloud &amp;amp; Automation. 🌍  &lt;/p&gt;

&lt;h2&gt;
  
  
  Why DevOps?
&lt;/h2&gt;

&lt;p&gt;I’ve always loved problem-solving and building efficient systems. DevOps feels like the perfect blend of &lt;strong&gt;technology, teamwork, and continuous learning&lt;/strong&gt;.  &lt;/p&gt;

&lt;p&gt;Right now, I’m focusing on:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;☁️ AWS
&lt;/li&gt;
&lt;li&gt;🐳 Docker
&lt;/li&gt;
&lt;li&gt;🔄 CI/CD pipelines
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What I’ll Share Here
&lt;/h2&gt;

&lt;p&gt;On this platform, I’ll be documenting my journey through:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Beginner-friendly tutorials &amp;amp; notes 📓
&lt;/li&gt;
&lt;li&gt;Step-by-step guides 🛠️
&lt;/li&gt;
&lt;li&gt;Lessons learned from challenges (and mistakes 😅)
&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Let’s Connect 🚀
&lt;/h2&gt;

&lt;p&gt;I’d love to meet others who are learning or already working in DevOps/Cloud. Feel free to:  &lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Share tips, resources, or encouragement 💡
&lt;/li&gt;
&lt;li&gt;Ask questions (I’m learning too!)
&lt;/li&gt;
&lt;li&gt;Just say hi in the comments 🙌🏽
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Thanks for reading, and here’s to &lt;strong&gt;learning, sharing, and growing together&lt;/strong&gt;! 💜  &lt;/p&gt;




&lt;p&gt;&lt;em&gt;#DevOps #Cloud #AWS #Docker #LearningInPublic&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>aws</category>
      <category>docker</category>
      <category>cloudcomputing</category>
    </item>
  </channel>
</rss>
