Container technology—often referred to simply as “containers”—is a mechanism for packaging an application so that it can run in isolation from other processes. Getting their name from the shipping industry, containers are units of software, made up of code and dependencies, that enable applications to run quickly, reliably, and uniformly, regardless of their computing environment. In this post, we’ll briefly explain how containers work, examine why container technology is so popular today, introduce common container service providers, and outline some security best practices that you can follow when taking this approach to building software. How do containers work and why should I use them? Developers face many challenges when the supporting software, network topology, or security policies they use in different environments (e.g., staging vs. production environments, physical data centers vs. private or public cloud environments) aren’t identical. These inconsistencies, for example, can make it difficult to effectively identify vulnerabilities.