Fundermental Concepts

img

  • 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.
# Use an official Node.js image as a base image
FROM node:16
 
# Set the working directory inside the container
WORKDIR /app
 
# Copy package.json and package-lock.json files
COPY package*.json ./
 
# Install dependencies
RUN npm install
 
# Copy the rest of the application code
COPY . .
 
# Expose the application port
EXPOSE 3000
 
# Command to run the application
CMD ["npm", "start"]
  • 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 pull [OPTIONS] IMAGE[:TAG|@DIGEST]
docker pull nginx:latest // example
  • Docker Push : The docker push command uploads an image from your local system to a Docker registry.
docker push [OPTIONS] NAME[:TAG]
docker push your-dockerhub-username/my-app:1.0

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