Docker provides the fastest way to get started with PyRIT. This method uses a pre-configured container with JupyterLab, eliminating the need for local Python environment setup.
Who Should Use Docker?¶
✅ Use Docker if you:
Want to get started immediately without Python setup
Prefer a consistent, isolated environment
Are new to PyRIT and want to try it quickly
Want JupyterLab pre-configured and ready to go
Work on Windows, macOS, or Linux
❌ Consider local installation if you:
Need to integrate PyRIT into existing Python workflows
Prefer lighter-weight installations
Want direct access to PyRIT from your system Python
Prerequisites¶
Before starting, install:
Quick Start¶
1. Clone the PyRIT Repository¶
git clone https://github.com/Azure/PyRIT
cd PyRIT/docker2. Set Up Environment Files¶
Create the required environment configuration files:
# Create main environment files in the parent directory
cp ../.env_example ~/.pyrit/.env
cp ../.env_local_example ~/.pyrit/.env.local
# Create container-specific settings
# Note: The example file uses underscores, but you copy it to a file with dots
cp .env_container_settings_example .env.container.settings3. Build and Start the Container¶
# Build and start the container in detached mode
docker-compose up -d
# View logs to confirm it's running
docker-compose logs -f4. Access JupyterLab¶
Once the container is running, open your browser and navigate to:
http://localhost:8888By default, JupyterLab runs without authentication for ease of use.
Using PyRIT in JupyterLab¶
Once JupyterLab is open:
Navigate to the notebooks: The PyRIT documentation notebooks will be automatically available in the
notebooks/directoryCheck your PyRIT version:
import pyrit
print(pyrit.__version__)Match notebooks to your version:
If using a release version (e.g.,
0.9.0), download notebooks from the corresponding release branch:https://github.com/Azure/PyRIT/tree/releases/v0.9.0/docThe automatically cloned notebooks from the main branch may not match your installed version
This website documentation shows the latest development version (main branch)
Start using PyRIT:
# Your PyRIT code hereCheck out the cookbooks for example workflows and tutorials.
Directory Structure¶
The Docker setup includes these directories:
docker/
├── Dockerfile # Container configuration
├── docker-compose.yaml # Docker Compose setup
├── requirements.txt # Python dependencies
├── start.sh # Startup script
├── notebooks/ # Your Jupyter notebooks (auto-populated)
└── data/ # Your data filesnotebooks/: Place your Jupyter notebooks here. They’ll be available in JupyterLab.
data/: Store datasets or other files here. Access them at
/app/data/in notebooks.
Configuration Options¶
Environment Variables¶
Edit .env.container.settings to customize:
CLONE_DOCS: Set to
true(default) to automatically clone PyRIT documentation into the notebooks directoryENABLE_GPU: Set to
trueto enable GPU support (requires NVIDIA drivers and container toolkit)
Adding Custom Notebooks¶
Simply place .ipynb files in the notebooks/ directory, and they’ll appear in JupyterLab automatically.
Container Management¶
Stop the Container¶
docker-compose downRestart the Container¶
docker-compose restartView Logs¶
docker-compose logs -fRebuild After Changes¶
If you modify the Dockerfile or requirements:
docker-compose down
docker-compose build --no-cache
docker-compose up -dGPU Support (Optional)¶
To use NVIDIA GPUs with PyRIT:
Prerequisites¶
Install NVIDIA drivers
Install NVIDIA Container Toolkit
Enable GPU in Container¶
Edit
.env.container.settings:ENABLE_GPU=trueRestart the container:
docker-compose down docker-compose up -dVerify GPU access in a notebook:
import torch print(f"CUDA available: {torch.cuda.is_available()}") print(f"GPU count: {torch.cuda.device_count()}")
Troubleshooting¶
JupyterLab Not Accessible¶
Problem: Cannot access http://localhost:8888
Solutions:
Check if the container is running:
docker psView container logs:
docker-compose logs pyritEnsure port 8888 is not already in use:
# On Linux/macOS lsof -i :8888 # On Windows (PowerShell) netstat -ano | findstr :8888
Permission Errors¶
Problem: Permission denied errors when accessing notebooks or data
Solution: Set appropriate permissions:
chmod -R 777 notebooks/ data/ ../assets/Missing Environment Files¶
Problem: Container fails with missing environment file errors
Solution: Ensure all environment files are created:
ls -la ../.env ../.env.local .env.container.settingsIf any are missing, create them from the examples as shown in step 2 of Quick Start.
Container Build Fails¶
Problem: Docker build fails with dependency errors
Solutions:
Clear Docker cache and rebuild:
docker-compose build --no-cacheEnsure you have sufficient disk space:
docker system dfPrune old images if needed:
docker system prune -a