Pumba is a chaos testing and network emulation tool for containers that works with Docker, containerd, and Podman.
The tool addresses the need to validate system resilience by injecting controlled failures into containerized environments. It operates by directly interfacing with container runtimes through their sockets, allowing it to perform chaos actions such as killing, stopping, pausing, or removing containers. Beyond container lifecycle operations, it can inject network faults including delays and packet loss, and apply resource stress tests to containers. The approach is inspired by Netflix Chaos Monkey but operates at the container level rather than the virtual machine level.
Pumba suits teams practicing chaos engineering who need to test how their containerized systems respond to failures. It works best in Linux environments where containers run, as all chaos actions depend on Linux kernel primitives like network namespaces, cgroups, iptables, and traffic control. The tool supports multiple container runtimes, with Docker as the default; containerd requires root access and works with Kubernetes, Docker-managed, and pure containerd namespaces; Podman support requires rootful mode. On macOS, the tool is intended for development workflows where it drives remote container environments rather than running containers locally. Windows is not supported.
The project maintains active build and release automation with passing tests and linting checks. Code coverage is tracked and publicly reported. The tool is written in Go and has documented guides covering quick start, network chaos operations, and deployment scenarios.