Container platform that packages applications with all dependencies into portable, consistent units that run identically in any environment.
Docker is a platform that allows packaging applications into containers — lightweight units that include the code, runtime, libraries, and configuration needed to run. A container runs identically on your laptop, in CI/CD, and in production.
| Concept | Function | Example |
|---|---|---|
| Image | Immutable template with the filesystem | node:22-alpine, custom image |
| Container | Running instance of an image | docker run my-app |
| Dockerfile | Recipe for building an image | FROM, COPY, RUN, CMD |
| Registry | Image repository | Docker Hub, ECR, GHCR |
| Volume | Persistent storage outside the container | Database data, uploads |
FROM node:20-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]| Aspect | Docker | VM |
|---|---|---|
| Overhead | Minimal (shares kernel) | High (full OS) |
| Startup | Seconds | Minutes |
| Size | MBs | GBs |
| Isolation | Process | Hardware |
Docker standardized application packaging. A container works the same in development, CI, and production. This consistency eliminated an entire category of environment bugs and enabled practices like CI/CD, microservices, and immutable infrastructure.
Specification for defining reproducible development environments in containers, eliminating 'works on my machine' problems and accelerating onboarding.
AWS container orchestration service that runs and scales Docker applications without managing the underlying cluster infrastructure.
Development approach leveraging cloud advantages: containers, microservices, immutable infrastructure, and declarative automation for scalable and resilient systems.
Repositories for storing, versioning, and distributing container images, from public registries like Docker Hub to private registries like ECR.
Practices and tools for securing containers throughout their lifecycle: image building, runtime, orchestration, and compliance.
Container orchestration platform that automates deployment, scaling, and management of containerized applications at scale, becoming the de facto standard for cloud native.
Tool for defining and running multi-container applications with a YAML file, simplifying local development of systems with multiple services.
Serverless compute engine for containers that eliminates server management, allowing Docker container execution paying only for consumed resources.