Skip to main content

Docker - Home

What is Docker?

  • In simple terms, Docker is a program that simplifies the process of creating, managing, and distributing applications. It does this by enabling all computer operating systems to download and run any program with ease and without much configuration.

  • Docker uses a container to connect to a computer's operating system to execute programs. It allows applications to use the same Linux kernel as a system built into a computer, rather than creating an entire virtual operating system.

  • Docker was created by Kamel Founadi, Solomon Hykes and Sebastien Pahl and uses the Golang Programming Language. Docker has been around for 10 years now, as of March 20, 2013.

  • Docker integrates with many components such as Docker client, Docker server, Docker machine, Docker hub, Docker composes, etc.

What is a Docker Container?

  • Docker Container is a lightweight virtual machine. It allows developers to package software that includes all the libraries and dependencies associated with the application, and ship it individually as a package.

Docker Container

  • The advantage of using a docker container is that you do not need to allocate RAM and disk space to execute any program, it will automatically generate storage and space according to the requirements of the program.

What is a Virtual Machine?

  • Virtual Machine is a program that allows us to download and use different operating systems (Windows, Linux, and Debian) at the same time on our machine. The operating system on which the virtual machine is running is called virtualized operating systems. All of these Virtualized Operating Systems are able to execute applications and perform tasks like real operating systems.

Virtual Machine

Containers Vs. Virtual Machine

ContainerVirtual Machine
Integration in a container is faster and cheap.Integration in virtual is slow and costly.
No wastage of memory.Wastage of memory.
It uses the same kernel, but different distribution.It uses multiple independent operating systems.

Why use Docker?

Why Docker

  • Docker is designed to benefit both the Developer and System Administrator. There are the following reasons to use Docker:
    • Docker allows us to easily install and run software without worrying about setup or dependencies.
    • Developers use Docker to eliminate machine problems, that is, when we run programs on Docker, it is lighterweight than running programs directly.
    • Operators use Docker to run and manage apps in isolated containers for better compute density.
    • Enterprises use Docker to securely built agile software delivery pipelines to ship new application features faster and more securely.

Advantages of Docker

  • The advantages of Docker are as follows:
    • It uses less memory.
    • It provides lightweight virtualization.
    • It does not a require full operating system to run applications.
    • It allows you to use a remote repository to share your container with others.

Disadvantages of Docker

  • The disadvantages of Docker are as follows:
    • It increases complexity due to an additional layer.
    • In Docker, it is difficult to manage large amount of containers.
    • Some features such as container self-registration, containers self-inspects, copying files form host to the container, and more are missing in the Docker.
    • Docker is not a good solution for applications that require rich graphical interface.

Docker Engine

  • It is a client server application that contains the following major components:
    • A server which is a type of long-running program called a daemon process.
    • The REST API is used to specify interfaces that programs can use to talk to the daemon and instruct it what to do.
    • The client has a command line interface for submitting commands to the server.

Docker Engine