My DevOps Journey: From Hello World to Hello Docker

Ayush MoreAyush More
4 min read

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 installed

  • docker pull <image> — Download a Docker image

  • docker run <image> — Start a container from the image

  • docker ps — See running containers

  • docker stop <container> — Stop a running container Docker Screenshot

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 services

  • docker-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)

  1. Confused Docker images with containers
    Think of images as blueprints and containers as the actual building.

  2. 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.

  3. Tried to understand everything before starting
    You don't need to. Start small, mess things up, fix them — that's the real learning.

What is Docker Container

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.

1
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!