Introduction In the world of software development, it is all too common to come across the phrase: " But it works on my machine! 💻" This phrase is mainly associated with when developers are deploying their application for their users or a client, but the software fails to work as expected in production, yet it still works perfectly in development. This problem is mostly as a result of differences in the environment (The OS, runtime environment, and configurations) and dependency issues. Over the years, there have been various developments towards resolving this problem. For example, the development of FreeBSD jails , Open vz , and Linux containers (LXC) . Although these advances embodied the idea of containerization, they were mostly designed for system administrators and not convenient for developers. It is not until the advent of Docker that developers started employing containerization for their applications, bridging the development and production disconnect. What is Containerization?…