3. OVERVIEW
Docker is a tool that is designed to benefit both developers and system administrators, making it a part
of many DevOps (developers + operations) toolchains.
For developers, it means that they can focus on writing code without worrying about the system that it
will ultimately be running on.
It also allows them to get a head start by using one of thousands of programs already designed to run in
a Docker container as a part of their application.
For operations staff, Docker gives flexibility and potentially reduces the number of systems needed
because of its small footprint and lower overhead.
Docker brings security to applications running in a shared environment, but containers by themselves
are not an alternative to taking proper security measures.
5. DOCKER FEATURES
Easy and Faster Configuration:
This is a key feature of Docker that helps us to configure the system easily and faster.
We can deploy our code in less time and effort.
As Docker can be used in a wide variety of environments, the requirements of the infrastructure are no longer
linked with the environment of the application.
Increase productivity:
By easing technical configuration and rapid deployment of application. No doubt it has increase productivity.
Docker not only helps to execute the application in isolated environment but also it has reduced the resources.
Application Isolation:
It provides containers that are used to run applications in isolation environment. Each container is independent to
another and allows us to execute any kind of application.
6. DOCKER FEATURES
Swarm:
It is a clustering and scheduling tool for Docker containers. Swarm uses the Docker API as its front end, which
helps us to use various tools to control it.
It also helps us to control a cluster of Docker hosts as a single virtual host. It's a self-organizing group of engines
that is used to enable pluggable backend.
Routing Mesh:
It routes the incoming requests for published ports on available nodes to an active container.
This feature enables the connection even if there is no task is running on the node.
Services:
Services is a list of tasks that lets us specify the state of the container inside a cluster.
Each task represents one instance of a container that should be running and Swarm schedules them across nodes.
9. DOCKER TERMS
Docker file:
A Docker file is a text document which contains all the commands that a user can call on the command line to
assemble an image.
So, Docker can build images automatically by reading the instructions from a Docker file.
You can use Docker build to create an automated build to execute several command-line instructions in
succession..
Docker Image:
In layman terms, Docker Image can be compared to a template which is used to create Docker Containers.
So, these read-only templates are the building blocks of a Docker Container.
You can use Docker run to run the image and create a container.
Docker Images are stored in the Docker Registry. It can be either a user’s local repository or a public repository
like a Docker Hub which allows multiple users to collaborate in building an application.
10. DOCKER TERMS
Docker Container:
Docker Container is a running instance of a Docker Image as they hold the entire package needed to run the
application.
So, these are basically the ready applications created from Docker Images which is the ultimate utility of Docker.
Docker Compose:
It is a YAML file which contains details about the services, networks, and volumes for setting up the Docker
application.
So, you can use Docker Compose to create separate containers, host them and get them to communicate with
each other.
Each container will expose a port for communicating with other containers.
11. DOCKER DEPLOYMENT BENEFITS
Return on Investment and Cost Savings:
The first advantage of using Docker is ROI.
The biggest driver of most management decisions when selecting a new product is the return on investment.
The more a solution can drive down costs while raising profits, the better a solution it is, especially for large,
established companies, which need to generate steady revenue over the long term.
Standardization and Productivity:
Docker containers ensure consistency across multiple development and release cycles, standardizing your
environment.
One of the biggest advantages to a Docker-based architecture is actually standardization.
Docker provides repeatable development, build, test, and production environments.
12. DOCKER DEPLOYMENT BENEFITS
CI Efficiency:
Docker enables you to build a container image and use that same image across every step of the deployment
process.
A huge benefit of this is the ability to separate non-dependent steps and run them in parallel.
The length of time it takes from build to production can be speed up notably.
Compatibility and Maintainability:
Eliminate the “it works on my machine” problem once and for all. One of the benefits that the entire team will
appreciate is parity.
Parity, in terms of Docker, means that your images run the same no matter which server or whose laptop they are
running on.
For your developers, this means less time spent setting up environments, debugging environment-specific issues,
and a more portable and easy-to-set-up codebase.
13. DOCKER DEPLOYMENT BENEFITS
Simplicity and Faster Configurations:
One of the key benefits of Docker is the way it simplifies matters. Users can take their own configuration, put it
into code, and deploy it without any problems.
As Docker can be used in a wide variety of environments, the requirements of the infrastructure are no longer
linked with the environment of the application.
Rapid Deployment:
Docker manages to reduce deployment to seconds.
This is due to the fact that it creates a container for every process and does not boot an OS.
Data can be created and destroyed without worry that the cost to bring it up again would be higher than what is
affordable.
14. DOCKER DEPLOYMENT BENEFITS
Continuous Deployment and Testing:
Docker ensures consistent environments from development to production.
Docker containers are configured to maintain all configurations and dependencies internally; you can use the
same container from development to production making sure there are no discrepancies or manual intervention.
Multi-Cloud Platforms:
One of Docker’s greatest benefits is portability. Over last few years, all major cloud computing providers, including
Amazon Web Services (AWS) and Google Compute Platform (GCP), have embraced Docker’s availability and
added individual support.
Docker containers can be run inside an Amazon EC2 instance, Google Compute Engine instance, Rackspace server,
or Virtual Box, provided that the host OS supports Docker.
If this is the case, a container running on an Amazon EC2 instance can easily be ported between environments, for
example to Virtual Box, achieving similar consistency and functionality.
15. PRO’S AND CON’S
Pro’s:
Docker on Mac and Windows are better than ever
Docker gives you consistency across your team
Docker eases the pain of debugging environments
Interesting avenues of automation open up with Docker
Docker speeds up the provisioning process
The Docker community is huge and resources are plentiful
16. PRO’S AND CON’S
Con’s:
Docker has some gaps in documentation
Docker has performance problems on non-native environments
Docker has poor monitoring
Docker is platform-dependent
Docker storage is still hard
17. THANKS
If you feel that it is helpful and worthy to share with others then please like and share the same.