docker-killer
Docker image for Docker stress and Docker orchestration testing
500K+
WARNING: IT IS NOT GUARANTEED THAT YOUR SYSTEM/CONTAINERS WILL SURVIVE THIS KILLER TESTING! DO NOT USE THIS IMAGE UNLESS YOU REALLY KNOW WHAT ARE YOU DOING!

There is a million of articles how Docker containers are awesome and only a few articles about Docker problems in enterprise production. Hopefully this image will help you to understand problems of Docker in production, which I have discovered from my 2 years commercial Docker experience. Feel free to add more usefull test cases. And again:
WARNING: IT IS NOT GUARANTEED THAT YOUR SYSTEM/CONTAINERS WILL SURVIVE THIS KILLER TESTING! DO NOT USE THIS IMAGE UNLESS YOU REALLY KNOW WHAT ARE YOU DOING!
All tests with default 60s timeout per test (except die/kernel panic test):
docker run \
--rm -ti \
--privileged \
-v /:/rootfs \
--oom-kill-disable \
monitoringartist/docker-killer \
all
It will 100% utilize all CPUs.
docker run \
--rm -ti \
--privileged \
-v /:/rootfs \
--oom-kill-disable \
monitoringartist/docker-killer \
cpubomb

Solution: Use cgroup CPU subsytem limitation.
It will exhaust host memory and swap space.
docker run \
--rm -ti \
--privileged \
-v /:/rootfs \
--oom-kill-disable \
monitoringartist/docker-killer \
membomb

Solution: Don't use --oom-kill-disable unless it's neccessary and use cgroup memory subsystem.
It will utilize your internet connectivity by using UDP stream.
docker run \
--rm -ti \
--privileged \
-v /:/rootfs \
--oom-kill-disable \
monitoringartist/docker-killer \
netbomb

Solution: Use OS network limitations (shapping, ....) or cgroup network priority (net_prio) subsystem. If you need the best performance, don't use default Docker userland proxy. Try to use host network or some custom network solution.
It will execute number of forks.
docker run \
--rm -ti \
--privileged \
-v /:/rootfs \
--oom-kill-disable \
monitoringartist/docker-killer \
forkbomb
Solution: Use your standard OS number of processes limitations: number of processes per user and use custom user with defined limit in the container.
It will generate kernel panic.
docker run \
--rm -ti \
--privileged \
-v /:/rootfs \
--oom-kill-disable \
monitoringartist/docker-killer \
kernelpanic
Solution: Don't run any Docker images, which can cause kernel panic.
Exit container with exit code 1.
docker run \
--rm -ti \
--privileged \
-v /:/rootfs \
--oom-kill-disable \
monitoringartist/docker-killer \
die
Test your Docker orchestration of daemonized containers. Your solution should (re)start container automatically. Some people are using supervisor in the container, but it's adding another process into container. The best approach, which I have seen is systemd, which handle Docker container lifecycle. Your container is your system(d) service, which you are able to start/stop/restart by using standard systemd utilities. Recommened Puppet module - https://github.com/garethr/garethr-docker
| Environment variable | Description |
|---|---|
| TIMEOUT | Test duration - default 60 sec per test |
| NETBOMB | Default command for netbomb test: iperf -c iperf.scottlinux.com -i 1 -p 5201 -u -t $TIMEOUT, you may to use another public iperf server https://iperf.fr/iperf-servers.php |
Hitler uses Docker - overview of Docker in production problems. If you are familiar with Docker problems, then it's funny video.
Devops Monitoring Expert, who loves monitoring systems and cutting/bleeding edge technologies: Docker, Kubernetes, ECS, AWS, Google GCP, Terraform, Lambda, Zabbix, Grafana, Elasticsearch, Kibana, Prometheus, Sysdig, ...
Summary:
Professional devops / monitoring / consulting services:
Content type
Image
Digest
Size
4 MB
Last updated
about 8 years ago
docker pull monitoringartist/docker-killer