5 Poking Docker
This chapter covers
- What Docker is and where it came from
- How Docker works under the hood
- How to design chaos experiments for software running in Docker
- How to do chaos experiments on Docker itself
- Using tools like Pumba to easily implement chaos experiments in Docker
Oh Docker!. With its catchy name and the lovely whale logo, it has become the public face of Linux containers in just a few short years since the first release in 2013. I now routinely hear things like, “Have you dockerized it?” and, “Just build an image with that, I don’t want to install the dependencies.” And it’s for a good reason. Docker capitalized on existing technology in the Linux kernel to offer a convenient and easy-to-use tool, ready for everyone to adopt. It played an important role in taking container technology from the arcane to the mainstream.
In order to be an effective chaos engineer in the containerized world, we need to understand what containers are, how to peek under the hood, and what new challenges (and wins) they present to us. We will focus on Docker, as the most popular container technology.
DEFINITIONS
What’s exactly a container? We’ll define this term shortly, but for now just know it’s a construct designed to limit the resources a particular program running inside of a container can access.