My DevOps Journey: From Hello World to Hello Docker


A guide for beginners — from a beginner
Introduction
As a student stepping into the world of DevOps, I found myself in a thrilling but challenging adventure — especially when I met Docker. It’s been exciting, confusing, and at times, felt like I was debugging my own brain. In this blog, I’ll walk you through my experience deploying my first Dockerized application and the key lessons I learned along the way.
What is Docker (and why is everyone talking about it)?
Let’s say you built a cool app on your laptop. It runs perfectly. Now your friend wants to try it — but it breaks on their machine.
Why?
Because your system has certain dependencies, environment variables, and tools that theirs doesn’t. That’s where Docker becomes your superhero 🦸.
Docker packages your app with everything it needs into a single unit called a container. Now when your friend runs that container, it just works — no “it works on my machine” drama.
Docker is like a zip file for your app, but it actually runs.
Installing Docker (a minor horror story)
Installing Docker on my Windows system was a bit of a nightmare. WSL 2 (which Docker Desktop relies on) just didn’t want to cooperate. I tried installing and uninstalling everything multiple times. Still nothing.
At this point, many people would give up. I almost did too.
Then I discovered KillerCoda — an online platform that provides pre-configured environments for Docker, Kubernetes, and more. It saved me. I could now start learning Docker right in my browser — no installation hassles, no tantrums from WSL.
First Contact: Learning Docker Commands
I began exploring basic Docker commands like:
docker --version
— Check if Docker is installeddocker pull <image>
— Download a Docker imagedocker run <image>
— Start a container from the imagedocker ps
— See running containersdocker stop <container>
— Stop a running container
Docker commands in action.
At first, typing these commands felt like casting spells. Sometimes I typed them wrong five times in a row — but that’s how learning works.
Deploying My First App (and fighting YAML)
I decided to deploy a simple Voting App that included:
A frontend (Voting App)
A backend (Result App)
MongoDB to store votes
Postgres to store results
This looked simple on paper — until I ran into:
YAML indentation issues (one space wrong and nothing works)
Port binding conflicts
Dockerfile typos that made containers crash silently
But after many retries, I finally deployed it. That moment — seeing all containers work together — was a win I won’t forget 🎉
Enter Docker Compose: Multi-Container Management
Managing multiple containers manually is exhausting. That’s when I learned about Docker Compose.
Instead of writing docker run
for every service, I wrote a docker-compose.yml
file and ran:
docker-compose up
— to start all servicesdocker-compose down
— to stop them
Compose saved me a lot of time. It’s a must if you're working with real-world, multi-service applications.
Mistakes I Made (So You Don’t Have To)
Confused Docker images with containers
Think of images as blueprints and containers as the actual building.Watched long tutorials instead of trying things myself
Watching 4-hour tutorials made me feel productive — but I wasn’t learning much. Once I started doing small tasks like writing Dockerfiles or spinning up containers, things clicked faster.Tried to understand everything before starting
You don't need to. Start small, mess things up, fix them — that's the real learning.
An illustration explaining what a Docker container is.
The biggest mistake is never starting. Most people don't even take the first step.
What’s Next? DevOps Level 2
Docker was just the beginning of my DevOps journey. Here’s what I’m exploring next:
Docker Compose for real-world projects
CI/CD pipelines to automate deployments
Kubernetes (the container orchestrator everyone talks about)
Each of these tools adds a layer to the DevOps stack, and I’m excited to explore them next 🚀
Conclusion: What Docker Taught Me
Docker helped me understand:
Why environments matter
How packaging everything improves portability
That frustration is part of the learning process
If you’re starting your DevOps journey, I highly recommend diving into Docker. Break things. Fix them. Build your confidence step by step.
If you’ve got questions, I’d love to chat. Reach out, and let’s learn together.
Subscribe to my newsletter
Read articles from Ayush More directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by

Ayush More
Ayush More
Building containers, breaking YAMLs & blogging the chaos 😅 | Student → DevOps Explorer | Let’s learn infra the fun way!