Swiss army knife for debugging containers and Kubernetes: one Alpine image with networking, storage, performance and cluster tools. Start it where you need to test or debug something.
# Kubernetes: throwaway pod with a shell
kubectl run debug --rm -it --image=ghcr.io/tuxpeople/debugcontainer:latest -- bash
# Attach to a running pod (shares its network namespace)
kubectl debug -it <pod> --image=ghcr.io/tuxpeople/debugcontainer:latest -- bash
# Docker
docker run --rm -it ghcr.io/tuxpeople/debugcontainer:latest bash
Without a command the container just sleeps (sleep infinity), so you can kubectl exec into it.
| Area | Tools |
|---|---|
| Networking | tcpdump, nmap, mtr, iperf, iperf3, netcat, socat, arping, ethtool, tcptraceroute, ngrep, dig/nslookup, sslscan, telnet, iproute2, iptables, ipset, net-tools, openssh |
| Containers & Kubernetes | kubectl, flux, crane, oras, ytt, imgpkg |
| Clients | mariadb, mc (MinIO), az (Azure CLI), git, curl, wget |
| Storage & performance | fio, hdparm, ioping, iozone, nfs-utils, rsync, speedtest-cli, /scripts/hdd-perf.sh |
| General | bash, jq, yq, vim, less, screen, tmux, htop, lsof, psmisc, tree, mc, p7zip, parallel, multitail, python3 |
Versions of the downloaded tools: cat /etc/*-version.
amd64 and arm64--user 1000 / runAsUser: 1000 (user abc).tdeutsch/debugcontainer3.6.0X.Y.Z, X.Y, X, latestBuilt in tuxpeople/docker-debugcontainer until 2026-11 (tags vX.Y.Z; latest stayed at 3.6.0 from 2025-10 while only nightly was rebuilt). Changes in 4.0.0:
latest and the version tags get every update againodo (discontinued by Red Hat) and oc (the amd64 build needs glibc and never ran on Alpine); kubectl now comes from Alpine, it did not run on amd64 before eithernightly, devel and edge tags are no longer updated; use latest or a version tagContent type
Image
Digest
sha256:5c33b9050…
Size
288.3 MB
Last updated
1 day ago
docker pull tdeutsch/debugcontainer