Fundermental Concepts
- Bare Metal: Refers to physical hardware, like a server, without any virtualization or abstraction layers. (Personal computer for an example)
- Operating System (OS): Software that manages hardware resources and provides an interface for applications to interact with the hardware.
- Kernel: The core component of an OS, responsible for managing system resources and executing processes.
- Client-Server Architecture: A network architecture where a client requests services from a server.
- Scaling: The process of increasing the capacity of a system to handle increased load.
- Vertical Scaling: Increasing the capacity of a single server by adding more resources like CPU, RAM, or storage.
- Horizontal Scaling: Adding more servers to a system to distribute the load.
- Virtual Machine (VM): A software emulation of a physical computer, allowing multiple OSes to run on a single physical machine.
- Hypervisor: Software that creates and manages virtual machines.
Docker-Specific Concepts
- Docker Engine: The core component of Docker, responsible for building, running, and managing containers.
- Dockerfile: A text document that contains instructions on how to build a Docker image.
- Docker Image: A read-only template that contains a software application and its dependencies.
- Docker Container: A running instance of a Docker image.
- Docker Desktop: A desktop application for Windows, Mac, and Linux that provides a user-friendly interface for working with Docker.
- Docker CLI: The command-line interface for interacting with Docker.
- Docker Hub: A public registry for storing and sharing Docker images.
- Docker Compose: A tool for defining and running multi-container Docker applications.
- Docker Pull : The docker pull command is used to download a container image from a registry to your local machine.
- Docker Push : The docker push command uploads an image from your local system to a Docker registry.
Advanced Docker Concepts
- Docker Compose : A tool for managing multi container applications.
- Kubernetes : Kubernetes is a system for automating the deployment, scaling, and management of containerized applications, often using Docker to package and run the containers.
More About Kubernetes >>> Kubernetes 101