Docker load testing guide

The fastest way to test a container is to run it the way production runs it. Stresix pulls your image, runs it on a target VPS, waits for health, then points a k6 shooter at it from the same private network.

Stresix run preview chart
A Stresix run preview: virtual users, requests per second, and p95 latency over ten minutes.

How the run starts

Stresix classifies the reference you paste. A Docker image is pulled and run on the target VPS with the health check injected. A repository is built in an isolated container first, then run the same way.

What runs where

The target app gets its own server with a private IP. The shooter gets a second server with k6. They talk over a private network, so the measurement excludes public internet round trips.

The 15 minute hard limit

Every run has a maximum window. At the end the test stops, telemetry is saved, and both servers are deleted through the tested teardown path.

Target container shape
# The target runs as a container on its own server.
# The shooter runs k6 on a second server on the same private network.
# Load traffic stays on the private network.
services:
  app:
    image: your-app:latest
    ports: ["80:8080"]
    healthcheck:
      test: ["CMD", "wget", "-q", "-O", "-", "http://127.0.0.1:8080/health"]
      interval: 3s
      retries: 10

Frequently asked questions

Can I test a private Docker image?

Yes. Push it to the private Stresix registry, then reference it in the test plan.

Does Stresix build repositories automatically?

Yes. A raw repository is built with Nixpacks in an isolated container with its own memory, CPU, and process limits.

What does the health check do?

The run waits for the target to answer before the shooter starts sending load, so the test measures a healthy app under pressure.

Related guides

stop guessing your specs. start knowing them.

point stresix at a target and get the number you can deploy on, in one run.

Start a load test