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 sameLinux kernel
as asystem
built into a computer, rather than creating an entirevirtual operating system
.Docker was created by
Kamel Founadi
,Solomon Hykes
andSebastien Pahl
and uses theGolang 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 thelibraries
anddependencies
associated with the application, and ship it individually as a package.
- The advantage of using a
docker container
is that you do not need to allocateRAM
anddisk
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
, andDebian
) at the same time on our machine. The operating system on which thevirtual machine
is running is calledvirtualized operating systems
. All of these Virtualized Operating Systems are able to execute applications and perform tasks like real operating systems.
Containers Vs. Virtual Machine
Container | Virtual 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?
- 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 ordependencies
. - 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.
- Docker allows us to easily install and run
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 yourcontainer
with others.
- It uses less
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 formhost
to thecontainer
, and more are missing in theDocker
. - 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 adaemon process
. - The
REST API
is used to specify interfaces that programs can use to talk to thedaemon
and instruct it what to do. - The
client
has acommand line interface
for submitting commands to theserver
.
- A