Docker - For Beginner Part 1

Docker - For Beginner Part 1

Basic Terminologies Of Docker

A container is a like a virtual machine (Not Really).
Technical Definition "A Docker container image is a lightweight, standalone, executable package of software that includes everything needed to run an application: code, runtime, system tools, system libraries and settings*.*"
Docker is a tool that creates/handles the container.
It is an advanced version of virtualization i.e. containerization.

What is Virtualization?

It allows a piece of hardware to run multiple operating system images at the same time

Why did docker replace VM virtualization?

  1. Operating System should be installed on every Virtual Machine

  2. Resources like CPU, memory, and I/O may not be allocated permanently to VMs

  3. Expensive(License OS for every Virtual Machine)

Containerization:

It is a software deployment process that bundles an application's code with all the files and libraries it needs to run on any infrastructure.

What is Docker?

It is an Open Source Centralised Platform.
It can be installed on Windows / Mac / Linux (But for running docker you required Linux Kernel)
It is used for "CREATE, DEPLOY & RUN "
It uses "GO " language
Docker is OS-level virtualization whereas VM-Ware is HW-level virtualization

Advantages Of Docker:

  1. No pre-allocation of any resources i.e RAM, Storage etc

  2. It enables the Continues Integration

    1. It enables to build of a container image

    2. You can use the same image for another environment as well.

  3. No license operating system installation i.e Less Cost

  4. It uses the required binaries/libraries from the host OS so it is Light Weight

  5. You can re-use images and create multiple containers

  6. It takes less time to create a container than create a VM i.e Faster

  7. It can be used for Physical H/W, virtual env or Cloud.

Disadvantages Of Docker

  1. No support for cross-platform.

  2. No solution for data recovery and backups.

  3. Not a good solution for a rich GUI application

  4. Difficult to manage large no of containers

  5. Suitable when Dev and Tester both using the same OS