"In 2013, Docker introduced what would become the industry standard for containers. Containers are a standardized unit of software that allows developers to isolate their app from its environment, solving the “it works on my machine” headache. For millions of developers today, Docker is the de facto standard to build and share containerized apps - from desktop, to the cloud."
What is a Container?
A container is a standard unit of software that packages up code and all its dependencies so the application runs quickly and reliably from one computing environment to another. 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.
Container images become containers at runtime and in the case of Docker containers - images become containers when they run on Docker Engine. Available for both Linux and Windows-based applications, containerized software will always run the same, regardless of the infrastructure.
- Docker simplifies building, shipping and running apps.
- Docker is a shipping container system for code.
- Docker runs natively on Linux or Windows Server 2016+ .
- Docker runs on Windows or Mac Development machines (with a virtual machine).
- Docker relies on images and containers.
- Using Docker accelerate developer onboarding. Usually it takes a certain amount of time until a newly hired developer has set up his programming environment. Docker can speed up this process considerably.
- By using Docker, you can run different applications side by side without the fear that they will influence each other. In short Docker eliminates app conflicts.
- By using Docker you can guarantee that the executing system for the containerized app will not change regardless of the stage (Development -> Quality -> Production) This is also called environmental consistency
- By using Docker you are able to ship software faster, cause it is the perfect environment to implement a seeamless CDP (Continuous Delivery Pipeline).
As the name suggests, a continuous delivery pipeline is an implementation of the continuous paradigm, where automated builds, tests and deployments are orchestrated as one release workflow. Put more plainly, a CD pipeline is a set of steps your code changes will go through to make their way to production.