## 📝 Author
Birat Aryal — birataryal.github.io
Created Date: 2025-06-18
Updated Date: Tuesday 17th June 2025 21:52:05
Website - birataryal.com.np
Repository - Birat Aryal
LinkedIn - Birat Aryal
DevSecOps Engineer | System Engineer | Cyber Security Analyst | Network Engineer
🐳 Introduction to Docker
Docker is an open-source platform designed to automate the deployment, scaling, and management of applications inside lightweight, portable containers. It enables developers and system administrators to package applications with all their dependencies and run them consistently across different environments.
🚀 Why Docker?
- Portability: Run the same container on any system that supports Docker (Linux, Windows, macOS).
- Isolation: Containers encapsulate everything needed to run a service without affecting the host.
- Efficiency: Shares the host OS kernel, making it faster and lighter than traditional virtual machines.
- Version Control: Docker images can be versioned and stored in registries like Docker Hub or Harbor.
- CI/CD Integration: Easily integrates with modern DevOps workflows.
🧩 Core Components of Docker
| Component | Description |
|---|---|
| Docker Engine | The runtime that builds and runs containers. It includes the Docker daemon (dockerd), REST API, and CLI (docker). |
| Images | Immutable templates that contain the application and all dependencies. Created using Dockerfiles. |
| Containers | Running instances of images. Each container is isolated and stateless by default. |
| Dockerfile | Script used to build Docker images by defining steps, base images, and commands. |
| Docker Compose | Tool for defining and running multi-container Docker applications using a docker-compose.yml file. |
| Volumes | Persistent storage mechanism used by containers to store data outside the container's filesystem. |
| Networks | Define communication between containers. Supports bridge, host, overlay, and custom networks. |
| Docker Hub / Registry | Repositories to store and share Docker images. Can be public (Docker Hub) or private (Harbor, GitLab, etc.). |