Containerization and Docker fundamentals
Before we discuss Kubernetes, we need to have a solid understanding of what role containers and Docker play in it. Containers facilitate the packaging of application code, runtime, configuration, and systems libraries as a single unit of deployment. This allows developers to ship their applications without worrying about dependency packaging, or where the application will run. It avoids the classic problem in software deployment where the developer says, “It works on my machine,” but when deployed into a production environment, the dependencies break. A container is a lightweight wrapper around the application that isolates the filesystem, network, and process space from the rest of the machine it is running on. This ensures that the application works as expected across all sorts of systems, from the developer machine, through the test and staging servers, to the production server infrastructure.
Containers are not a new concept...