CONTAINERIZATION

Build once.
Run anywhere.

Learning how to package applications into portable, reproducible containers using Docker.

omkar@labs:~/docker

$ docker build -t omkarlabs .

[+] Building container image...

$ docker images

omkarlabs:latest

$ docker run -p 8080:8080 omkarlabs

● Container running on port 8080

$ _

DOCKER LAB

What I'm Learning

Building practical Docker knowledge through hands-on container projects.

📦
CORE

Docker Images

Understanding how application code and dependencies are packaged into immutable container images.

🚢
CORE

Containers

Running isolated application environments using Docker containers.

📄
ACTIVE

Dockerfile

Creating reproducible container builds using Dockerfiles and layered images.

🌐
LEARNING

Docker Networking

Understanding ports, bridge networks, container communication and service connectivity.

💾
LEARNING

Volumes

Learning how persistent application data can be stored outside the container lifecycle.

🗃️
NEXT

Container Registry

Publishing Docker images to registries such as Google Artifact Registry.

REAL-WORLD PROJECT

Containerizing Omkar Labs

The Omkar Labs website is being used as a practical Docker learning project.

PROJECT #001

Omkar Labs Docker Container

The static website is packaged into a Docker image and served using Nginx.

The same container can then be tested locally before being deployed to Google Cloud Run.

HTML Nginx Docker Cloud Run

DOCKERFILE

Current Container Setup

A simple Nginx-based container suitable for the Omkar Labs static site.

Dockerfile

FROM nginx:alpine

COPY . /usr/share/nginx/html

EXPOSE 8080

CMD ["nginx", "-g", "daemon off;"]

CONTAINER WORKFLOW

Build → Test → Deploy

01

Build

Create a Docker image from the application source code and Dockerfile.

02

Run

Start the container locally and verify application behaviour.

03

Test

Check HTTP connectivity, ports, logs and application health.

04

Push

Push the container image to a container registry.

05

Deploy

Deploy the container to Google Cloud Run.

06

Monitor

Monitor logs, traffic, revisions and resource usage.

DOCKER CLI

Essential Commands

docker

$ docker --version

$ docker build -t omkarlabs .

$ docker images

$ docker run -p 8080:8080 omkarlabs

$ docker ps

$ docker logs CONTAINER_ID

$ docker stop CONTAINER_ID

$ docker rm CONTAINER_ID

● Docker Lab Ready

CONTAINER CONCEPTS

Docker vs Virtual Machines

DOCKER

Containers

Containers share the host operating system kernel and package only the application and its dependencies.

VM

Virtual Machines

Virtual machines include a complete guest operating system on top of virtualized hardware.

DOCKER ROADMAP

Next Labs

Phase 1 — Fundamentals

Images · Containers · Dockerfile · Ports · Logs · Volumes

Phase 2 — Advanced Docker

Docker Compose · Networks · Multi-stage builds · Image optimisation

Phase 3 — Cloud

Artifact Registry · Cloud Run · CI/CD · GitHub Actions · Kubernetes

KEEP BUILDING

Containers are the foundation.

Learn Docker today. Deploy to the cloud tomorrow.

Explore GCP