Instructor: Docker is the de facto tool used to create and deploy container-based applications. Docker is a client server-based architecture that makes running containers very easy. A container is a running unit of software. Containers are very lightweight and efficient and consume very little compute resources.
Every web server, database server, or other application server is identified as a service and typically runs within its own container that is isolated from other services. This practice provides the ability to scale each service independently from other services.
Containers are built from images. You can think of an image as a bundled archive containing all packages and source code needed to run the application.
A Docker file is a text file which serves as the blueprint and contains all instructions needed for building an image. Images can be built from other images with each line in the Docker file representing a layer that is immutably stored and cached for future use.
Once an image is built and a container is running, you can be sure that the container will reliably run the same for everyone, regardless of their operating environment.
Docker provides a very predictable runtime environment and allows you to focus on programming and shipping your app rather than worrying about installing the required dependencies needed in order to run it.