Skip to content

Latest commit

 

History

History
91 lines (59 loc) · 2.82 KB

File metadata and controls

91 lines (59 loc) · 2.82 KB

Docker Overview

What is Docker?

Docker was created by Solomon Hykes (Original Author), now it is developed and maintained by Docker INC. Docker is a tool to make application build, ship and deploy irrespective of any Operating System or any environment.

Docker runs on all 3 major Operating System

  • Linux
  • MacOS
  • Microsoft Windows

static/containers.png

Docker Architecture

With Docker we can create, ship and build a isolated environment which we called as Container. Containers are lightweight and we can run multiple containers on single host. Container shares kernel with the host machine.

Docker Engine

Docker is client-server application.

static/docker.png

Major coomponents of the Docker are

  • Docker Daemon Responsible for building, running the docker images.
  • Docker Client Docker client interacts with Docker using the docker api.
  • Docker Registry Docker images get stores at Docker Registry. Its a sort of git for the docker images.
  • Docker Objects
    • Images
    • Containers
    • Services
  • Namespaces Namespaces provides isolation for the process.
    • Process ID
    • Mount
    • IPC (Inter process communication)
    • User (currently experimental support for)
    • Network
  • Cgroups Cgroups provide resource limitation and reporting capability within the container space. They allow granular control over what host resources are allocated to the containers and when they are allocated.
    • CPU
    • Memory
    • Network Bandwidth
    • Disk
    • Priority

Containers are not new, but their use for easily deploying applications is.

Containerization is increasingly popular because containers are:

  • Flexible: Even the most complex applications can be containerized.
  • Lightweight: Containers leverage and share the host kernel.
  • Interchangeable: You can deploy updates and upgrades on-the-fly.
  • Portable: You can build locally, deploy to the cloud, and run anywhere.
  • Scalable: You can increase and automatically distribute container replicas.
  • Stackable: You can stack services vertically and on-the-fly.

Who all can use Docker?

Docker can be use by Sys Admins, QA, Developers and DevOps. Running application inside docker helps and make application platform independent.

How Docker differs from Virtual Machines?

A container runs natively on Linux and shares the kernel of the host machine with other containers. It runs a discrete process, taking no more memory than any other executable, making it lightweight.

static/Containers.png

By contrast, a virtual machine (VM) runs a full-blown “guest” operating system with virtual access to host resources through a hypervisor. In general, VMs provide an environment with more resources than most applications need.

static/VM.png