Skip to main content

Command Palette

Search for a command to run...

Day 146: Key Docker Concepts: Images, Containers & Dockerfiles

Understanding Docker: A Guide to Images, Containers, & Dockerfiles

Published
2 min read
Day 146: Key Docker Concepts: Images, Containers & Dockerfiles

Today I focused on the three most fundamental concepts in Docker: Images, Containers, and Dockerfiles. These form the core building blocks of containerized application development. Understanding them clearly is essential before moving into Docker networking, volumes, Compose, and orchestration tools.


1. What Are Docker Images?

Docker Images are:

  • Blueprints for creating containers

  • Read-only templates containing application code, dependencies, OS, configuration

  • Versioned artifacts you can push/pull from registries (Docker Hub, ECR, etc.)

Properties of Images

  • Immutable

  • Layered (Union File System)

  • Portable

Example:

docker pull nginx
docker images

When you download an image, you get all its layers stacked together.


2. What Are Containers?

Containers are:

  • Running instances of Docker images

  • Lightweight and isolated

  • Faster than virtual machines

A container adds a thin writable layer on top of the image and executes your application inside a controlled environment.

Example:

docker run -d -p 80:80 nginx

This creates a container from the nginx image and exposes it on port 80.


3. What Is a Dockerfile?

A Dockerfile is:

  • A text-based instruction file

  • Used to build your own images

  • Defines the application environment

✅ Basic Example Dockerfile

FROM python:3.9
WORKDIR /app
COPY . .
RUN pip install -r requirements.txt
CMD ["python", "app.py"]

Build and run:

docker build -t myapp .
docker run -d -p 5000:5000 myapp

4. How Images, Containers & Dockerfiles Work Together

Flow:

  1. You write a Dockerfile

  2. Docker builds an image

  3. You run the image → Docker creates a container

  4. Containers can be stopped, started, removed

  5. Images can be versioned, stored, and shared


5. Key Docker Commands

Images

docker pull image_name
docker build -t image_name .
docker rmi image_name

Containers

docker run image_name
docker stop container_id
docker ps -a
docker rm container_id

Inspect

docker inspect image_name

6. Why These Concepts Matter in DevOps

These concepts empower:

  • Immutable infrastructure

  • Consistent development → testing → production environments

  • Faster deployments

  • Zero-setup onboarding

  • Scalable microservices

  • CI/CD automation

You cannot build advanced Docker workflows (Compose, Swarm, Kubernetes, ECS) without mastering these fundamentals.


Key Takeaways

  • Images = packaged applications

  • Containers = running environments

  • Dockerfiles = how you define images

  • Everything in Docker is built on these three concepts

DevOps overview as a beginner

Part 1 of 50

Sharing my journey of learning DevOps as a beginner — covering essential tools, cloud setup, CI/CD, Docker, monitoring, and more, step by step with practical examples.