Pumba

github.com ↗

A container-level chaos tool for disrupting Docker, containerd and Podman workloads with lifecycle, network and resource faults.

SI Score
80/100
Pricing
Open Source AI reading, not confirmed
Free plan
Not confirmed
Sign-up required
Not confirmed

Ask SI about Pumba

Answers use saved listing facts and recorded sources.

What it does

Pumba is a command-line testing tool that applies controlled disruption to containers. It can kill, stop, pause or remove selected containers, inject network delay, loss, duplication or rate limits, and stress CPU, memory or I/O. Targets can be chosen by name, regular expression, labels or random selection, and recurring actions can be scheduled. Pumba targets Linux containers and depends on the container runtime socket and Linux networking or resource controls, so its operating location matters as much as the command.

Pumba works close to the container runtime. Choose Docker, containerd or Podman, provide access to the corresponding socket, and identify only the test containers you want to affect. The documented examples combine target selectors with a fault and a duration: for instance, add a short network delay to a database container or pause a disposable worker. Those are examples from the project's guide, not tests run for this record. Pumba can repeat actions on an interval and supports network emulation, container lifecycle faults and resource stress through one CLI.

Plan where Pumba itself runs before writing the experiment. The project targets Linux containers and relies on Linux primitives such as network namespaces, cgroups, iptables and traffic control. Linux is the primary host. macOS binaries are intended to drive a remote Linux VM or a Podman machine; when Podman runs in a VM, the README says Pumba must run inside that VM on the same kernel as the containers. Windows is explicitly unsupported.

Some effects need elevated access: the README specifies rootful Podman for network, iptables and stress actions, and notes root access for containerd sidecar setup. Pumba injects faults; it is not a standalone unit-test framework or a report dashboard. Use disposable workloads, narrow selectors and explicit durations so the disruption remains within the intended test boundary.

Strengths

  • One CLI covers container lifecycle disruption, network emulation and resource stress across Docker, containerd and Podman.
  • Names, regular expressions, labels and random selection provide several ways to scope a target set.
  • Duration and interval controls can bound and schedule documented fault actions.

Watch out for

  • Pumba acts on Linux containers and relies on Linux kernel facilities; Windows is not supported.
  • Network, iptables and stress actions can require rootful access, and macOS use may require running the binary inside a Linux VM.

Best for

  • Engineers testing how containerized services respond to process, network or resource failures.
  • Teams running Docker, containerd or Podman workloads on Linux.
  • CI or staging environments that need narrowly scoped and time-limited container fault injection.

Sources