From Image Creation to Infrastructure Management:#90DaysOfDevOps

Suyash DahituleSuyash Dahitule
3 min read

Before this week, the word “Docker” felt like a buzzword—popular in the DevOps world, yet intimidating. But this week? I went from hearing about Docker to confidently spinning up containers, building multi-tier apps, and even scanning them for security flaws.

And now I get it: Docker isn’t just a tool. It’s a mindset shift in how we build, test, and ship software.


I started with the very basics—understanding the fundamental difference between virtualization and containerization. Where virtual machines carry an entire OS on their back, Docker containers are lean, sharing the host OS kernel. The result? Lightning-fast boot times, smaller footprints, and environments that are CI/CD-friendly.

The architecture of Docker also fascinated me. I learned how:

  • dockerd acts as the daemon orchestrating containers

  • containerd works silently in the background, managing container lifecycles

This made me appreciate the layers behind every simple docker run.


Soon, I found myself exploring deeper. One concept that stood out was the difference between Docker images and containers.

An image is like a recipe—static, reusable, and ready to be launched anywhere. A container, on the other hand, is that recipe brought to life. I started experimenting with volumes, networks, and the Dockerfile itself—the instruction manual for building a reliable container.

Key ideas that clicked:

  • Volumes help preserve data even when containers are deleted

  • Docker networks let containers talk to each other like local services

  • Dockerfiles define the environment, dependencies, and app behavior


With the fundamentals in place, it was time to build. I created a Java Quotes app and paired it with NGINX to serve content. Seeing both services run in isolated containers while communicating smoothly felt like spinning magic.

Next, I took on a Flask application, wrote a multi-stage Dockerfile to optimize the image size, and pushed it to Docker Hub for sharing. The idea that I could build once and run anywhere was no longer theoretical—it was real.

I also used volumes to persist data and experienced how crucial it is when your app needs to retain user inputs, logs, or databases across sessions.


Midweek, I dived into something powerful: networking and multi-stage builds. I spun up two containers—my app and a MySQL database—and connected them via a custom Docker network. Docker’s internal DNS took care of the rest.

Using multi-stage builds helped me split the image into stages—cutting down unnecessary files, dependencies, and reducing final size. It's cleaner, faster, and better for production.


Then came one of my favorite parts—Docker Compose. It felt like putting everything I’d learned into a single YAML file. One command brought up a full stack; another took it down. With just docker-compose up -d, I had a working Flask + MySQL app with volumes and networks, all managed together.

Compose showed me how production-grade systems aren't just built—they’re orchestrated.


And just when I thought I had seen it all, I met Docker Scout—Docker’s security guardian.

Using Docker Scout, I scanned my container images for vulnerabilities. I reviewed CVEs, their severity levels, and understood what fixes I could apply. It felt like putting my app through a security checkpoint before letting it go live.

What I learned:

  • Image size optimization helps reduce the attack surface

  • Unpatched dependencies can expose critical vulnerabilities

  • Security should be built-in, not bolted on


By the end of Week 4, I wasn’t just writing Dockerfiles. I was architecting microservices, securing builds, and orchestrating deployments.

What seemed overwhelming at first is now second nature. Docker turned from a buzzword into a powerful tool in my DevOps journey.

Check out my complete work here:
https://github.com/suyash700/online_shop/tree/project

#Docker #Containers #DevOps #DevSecOps #DockerCompose #DockerScout #TrainWithShubham #90DaysOfDevOps #LearnInPublic

0
Subscribe to my newsletter

Read articles from Suyash Dahitule directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Suyash Dahitule
Suyash Dahitule