top of page

Welcome
to NumpyNinja Blogs

NumpyNinja: Blogs. Demystifying Tech,

One Blog at a Time.
Millions of views. 

Containerization with Docker

Feb 7
3 min read

What is Docker?


Docker is a software development and deployment platform that allows you to build, package, and run applications inside containers.


With Docker, you can bundle your application along with all its dependencies—such as libraries, frameworks, and configuration files—into a single unit called a Docker image. This image can then be run consistently across different environments like development, testing, and production.


Docker containers are lightweight compared to virtual machines (VMs) because they share the host operating system’s kernel instead of running a full OS. This makes them faster to start, more efficient in resource usage, and easier to scale.


Docker also simplifies application maintenance and deployment, enabling teams to ship software faster and with fewer environment-related issues. It supports any programming language, runtime, and operating system, making it a flexible choice for modern application development.



VM Versus Containers


VM:

Every Virtual Machine (VM) comes with its own operating system. This means each VM needs regular care, such as updates, patches, and security fixes. In many cases, the operating system also requires a license, which adds to the overall cost.


Because a VM must start its entire operating system, it takes time to boot—usually minutes instead of seconds. This makes VMs slower to start and restart compared to modern alternatives like containers.


VMs are portable, meaning you can move them between servers or environments. However, they are also bulky in size because they include the full OS along with the application. These large files consume more storage and are harder to manage at scale.


A significant portion of system resources like CPU, memory, and disk is used just to run the operating system itself. All of this overhead exists mainly to isolate services from each other so that one application does not affect another.


In short, Virtual Machines provide strong isolation, but they come with extra weight—more maintenance, higher resource usage, slower startup times, and additional costs.


Containers:

Containers share the host machine’s operating system kernel, which means they do not need a separate operating system for each application. Instead of running a full OS every time, containers use the same OS and focus only on running the application.


A container is a standard unit of software that packages the application code along with everything it needs to run—such as libraries, dependencies, and configuration files. Because everything is bundled together, the application behaves the same way in development, testing, and production environments.


Since containers do not include a full operating system, they are lightweight, fast to start, and use fewer system resources. This makes them easier to manage, quicker to deploy, and ideal for scaling applications.


In simple terms, containers provide a consistent and efficient way to build, ship, and deploy applications, helping teams move faster while avoiding “it works on my machine” problems.


How to Install Docker


Docker can be installed on Windows, macOS, and Linux. The easiest way is to download Docker Desktop from the official Docker website.


Official Docker website: https://www.docker.com/get-started


Docker Commands


Docker commands are the instruction set for interacting with the Docker command-line interface (CLI), used to manage containers, images, networks, and volumes.

Here are some of the most commonly used Docker commands and their meanings:


General Commands

Command

Meaning

docker run

Creates and starts a new container from a specified image.

docker ps

Lists the currently running containers. Use docker ps -a to see all containers (running and stopped).

docker stop

Stops a running container.

docker start

Starts a stopped container.

docker rm

Removes one or more stopped containers.

docker exec

Runs a command inside a running container (e.g., to open a shell inside it).

docker logs

Fetches and displays the logs of a container.

docker inspect

Displays detailed information (metadata) about a Docker object (container, image, network, volume).


Image Management


Command

Meaning

docker build

Builds a new Docker image from a Dockerfile.

docker pull

Downloads an image or a repository from a registry (like Docker Hub) to your local machine.

docker push

Uploads a local image or a repository to a registry.

docker images

Lists all the Docker images stored locally.

docker rmi

Removes one or more local Docker images.

docker tag

Creates a new tag for an existing image (often used before pushing to a registry).


System and Other Commands

Command

Meaning

docker login

Authenticates your Docker CLI session with a registry (e.g., Docker Hub).

docker logout

Logs out from a Docker registry.

docker cp

Copies files or folders between a container and the local filesystem.

docker info

Displays system-wide information about the Docker installation.

docker volume

Manages Docker volumes (for persistent data storage).

docker network

Manages Docker networks (for container communication).


 
 

+1 (302) 200-8320

NumPy_Ninja_Logo (1).png

Numpy Ninja Inc. 8 The Grn Ste A Dover, DE 19901

© Copyright 2025 by Numpy Ninja Inc.

  • Twitter
  • LinkedIn
bottom of page