Skip to main content
Strix uses Docker to create isolated sandbox environments for security testing. Understanding Docker configuration helps you customize the runtime behavior and troubleshoot issues.

Prerequisites

Strix requires Docker to be installed and running:
Docker Desktop must be running before you start Strix. If Docker is not available, Strix will exit with an error.

Sandbox Image

Default Image

Strix uses a pre-built Docker image that contains all security testing tools:
The sandbox image includes:
  • Python runtime with security libraries
  • Terminal environments for command execution
  • Browser automation (Playwright)
  • HTTP proxy (Caido)
  • Common security tools (Nuclei, etc.)

Custom Image

You can use a custom sandbox image:
Custom images must implement the Strix tool server API and include all required dependencies. Using an incompatible image will cause Strix to fail.

Image Pull

On first run, Strix automatically pulls the sandbox image:
The image is cached locally and reused for subsequent runs.

Runtime Configuration

Runtime Backend

Strix uses Docker as the runtime backend:
Currently, only docker is supported as a runtime backend. Other backends may be added in future releases.

Execution Timeout

Control how long Strix waits for individual tool executions:
This timeout applies to:
  • Terminal command execution
  • Python script execution
  • File operations
  • HTTP requests via proxy
Increase this value if you’re testing slow targets or running complex exploits:

Connection Timeout

Control how long Strix waits to connect to the sandbox tool server:
Increase this value if container startup is slow:

Container Management

Container Naming

Strix creates containers with predictable names:
Where scan-id is derived from the scan configuration.

Container Reuse

Strix automatically reuses containers across runs:
  1. If a container with the same scan ID exists, Strix reuses it
  2. If the container is stopped, Strix restarts it
  3. If the container is corrupted, Strix recreates it
This improves performance by avoiding repeated container creation.

Manual Container Management

You can manually manage Strix containers:

Container Cleanup

Strix automatically cleans up containers when:
  • The scan completes successfully
  • You exit the TUI
  • The process is interrupted (Ctrl+C)
In some cases, containers may not be cleaned up automatically. You can clean them manually:

Network Configuration

Port Bindings

Strix automatically binds container ports to random host ports:
  • Tool Server - Container port 48081 → Random host port
  • Caido Proxy - Container port 48080 → Random host port
You can find the bound ports:

Host Access

The sandbox can access services on your host machine using:
This is useful for testing local applications:

Docker Host

If you’re using a remote Docker daemon, set DOCKER_HOST:
Strix automatically detects the Docker host and adjusts connection URLs:
  • For local Docker: Uses 127.0.0.1
  • For remote Docker: Uses the hostname from DOCKER_HOST

Container Capabilities

Network Capabilities

Strix containers run with elevated network capabilities:
This allows:
  • Network packet manipulation
  • Raw socket access
  • Custom network configurations
  • Advanced network reconnaissance
These capabilities are required for certain security testing techniques. They are isolated to the container and do not affect your host system.

Workspace Mounts

Local Source Code

When testing local code, Strix automatically copies it to the container:
Strix mounts local directories as:
  • Path inside container: /workspace/{directory-name}
  • Ownership: pentester:pentester (non-root)
  • Permissions: 755 (readable and executable)

Multi-Target Mounts

With multiple local targets, each is mounted separately:

Resource Limits

By default, Strix containers have no resource limits. You can add limits using Docker configuration:

Memory Limit

Edit Docker daemon configuration (/etc/docker/daemon.json):
Or use Docker Compose for custom resource limits (not directly supported by Strix).

CPU Limit

Similarly, you can configure CPU limits in Docker daemon configuration.
Resource limits are not currently exposed as Strix configuration options. You’ll need to configure them at the Docker daemon level.

Troubleshooting

Docker Not Found

If you see “Docker not found”:
  1. Install Docker Desktop: https://www.docker.com/products/docker-desktop
  2. Ensure Docker is in your PATH: which docker
  3. Start Docker Desktop

Docker Not Running

If you see “Docker is not available”:
  1. Start Docker Desktop
  2. Verify it’s running: docker ps
  3. Check Docker daemon: docker info

Permission Denied

If you see permission errors:

Image Pull Failed

If image pull fails:
  1. Check your internet connection
  2. Verify you can reach GitHub Container Registry:
  3. Try pulling manually:
  4. Check Docker Hub rate limits (if applicable)

Container Creation Failed

If container creation fails:
  1. Check Docker daemon logs: docker logs
  2. Ensure sufficient disk space: df -h
  3. Remove old containers: docker container prune
  4. Remove old images: docker image prune

Tool Server Timeout

If you see “Tool server failed to start”:
  1. Increase connection timeout:
  2. Check container logs:
  3. Verify container is running:

Port Conflicts

Strix uses random ports to avoid conflicts. If you still encounter issues:
  1. Check for port exhaustion: netstat -an | grep LISTEN
  2. Restart Docker Desktop
  3. Remove old containers: docker rm -f $(docker ps -a --filter "name=strix-scan-" -q)

Performance Optimization

Container Reuse

To maximize performance, let Strix reuse containers:

Disk Space

Periodically clean up old containers and images:

Resource Allocation

Allocate sufficient resources to Docker Desktop:
  1. Open Docker Desktop settings
  2. Increase CPU and memory allocation
  3. Recommended: 4+ CPUs, 8+ GB RAM

See Also