Understanding Docker

Blake Tolman
2 min readApr 23, 2021

Docker is a tool designed to make it easier to create, deploy, and run applications by using containers. Containers allow a developer to package up an application with all of the parts it needs, such as libraries and other dependencies, and deploy it as one package. By doing so, thanks to the container, the developer can rest assured that the application will run on any other Linux machine regardless of any customized settings that machine might have that could differ from the machine used for writing and testing the code.

What are Containers?

The main goal of software development is to keep applications isolated from one another on the same host or cluster. This is difficult to achieve, thanks to the libraries, packages, and other software components needed for them to run. One solution to this problem is containers, which keep the application execution environments isolated from one another but share the underlying OS kernel. They provide an efficient and highly granular mechanism to combine software components into the kinds of application and service stacks required in a modern enterprise, and to keep those software components updated and maintained.

Why use Docker?

The benefits of using Docker are:

  • Offers improved and seamless productivity: Docker containers can be run on any data center, desktop, and cloud environment without any modifications.
  • Automated container creation: Automatically builds a container based on application source code.
  • Container reuse: Containers can be reused as base images(templates)
  • Shared container libraries: Open-source Registry can be accessed by developers which include thousands of user-contributed containers.
  • Container versioning: Version tracking of a container image can be done using Docker and it can also be rolled back to older versions.
  • Fast and consistent delivery of applications: Docker’s streamline the development lifecycle by making developers work in a standardized environment with the use of local containers that provide the applications and services. Containers are very useful for continuous integration and continuous delivery workflows.
  • Responsive deployment and scaling: Docker supports portable workloads, and its lightweight nature also makes it easy to manage dynamic workloads by scaling up applications and services in real-time.
  • Runs more workloads on the same hardware: Docker provides a viable and cost-effective choice for hypervisor-based virtual machines and also it’s perfect for high-density environments and for small and medium deployments.

Who is Docker for?

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 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.

--

--