Docker Cluster

Docker Overview

Docker is an open platform for developing, shipping, and running applications. Docker enables you to separate your applications from your infrastructure so you can deliver software quickly. 

Virtualization vs Containerization

Virtualization means each virtual machine has its own hypervisor. With containerization, either Docker is used to deploy an individual container, or Kubernetes is used to orchestrate multiple containers across multiple systems.

Virtualization enables you to run multiple operating systems on the hardware of a single physical server, while containerization enables you to deploy multiple applications using the same operating system on a single virtual machine or server.

Docker Architecture

Docker uses a client-server architecture. The Docker client talks to the Docker daemon, which does the heavy lifting of building, running, and distributing your Docker containers. The Docker client and daemon can run on the same system, or you can connect a Docker client to a remote Docker daemon.

Docker Engine installation overview

Get Docker

Engine installation

Important Terminologies in Docker

  • Docker Image
  • It is a file, comprised of multiple layers, used to execute code in a Docker container. They are a set of instructions used to create docker containers.

  • Docker Container
  • It is a runtime instance of an image. Allows developers to package applications with all parts needed such as libraries and other dependencies.

  • Docker file
  • It is a text document that contains necessary commands which on execution helps assemble a Docker Image. Docker image is created using a Docker file.

  • Docker Engine
  • The software that hosts the containers is named Docker Engine. Docker Engine is a client-server based application,
    The docker engine has 3 main components:

      Server: It is responsible for creating and managing Docker images, containers, networks, and volumes on the Docker. It is referred to as a daemon process.
      REST API: It specifies how the applications can interact with the Server and instructs it what to do.
      Client: The Client is a docker command-line interface (CLI), that allows us to interact with Docker using the docker commands.

  • Docker Hub
  • Docker Hub is the official online repository where you can find other Docker Images that are available for use. It makes it easy to find, manage, and share container images with others.

    Useful Resources

    More details about the topics we covered can be found from the following web sites.