Skip to content

Repository files navigation

Docker Images

Build and test Docs Documentation DockerHub

Twelve containerized AI/ML environments in four families (datascience, deeplearning, llms, and kaggle), each available for NVIDIA GPU, CPU, and Apple Silicon. Used via the devcontainer repos below, which add VS Code configuration and project scaffolding so setup is a single git clone.

Devcontainer repo Purpose Hardware Image Pulls
datascience-devcontainer Intro data science NVIDIA GPU datascience-nvidia pulls
CPU datascience-cpu pulls
Mac (Apple Silicon) datascience-mac pulls
deeplearning-devcontainer Deep learning (TensorFlow + PyTorch) NVIDIA GPU deeplearning-nvidia pulls
CPU deeplearning-cpu pulls
Mac (Apple Silicon) deeplearning-mac pulls
llms-devcontainer LLM application development NVIDIA GPU llms-nvidia pulls
CPU llms-cpu pulls
Mac (Apple Silicon) llms-mac pulls
kaggle-devcontainer Kaggle competitions NVIDIA GPU kaggle-nvidia pulls
CPU kaggle-cpu pulls
Mac (Apple Silicon) kaggle-mac pulls

Goals

  1. Eliminate setup friction: clone a devcontainer repo, open in VS Code, done. No manual environment configuration.
  2. Wide hardware support: GPU images cover Pascal through Blackwell; CPU fallbacks for machines without a GPU; native linux/arm64 for Apple Silicon.
  3. Low barrier to entry: any machine works. A 16GB P100 can be had on eBay for ~$90, enough to train deep learning models and host LLMs without cloud compute or proprietary APIs.
  4. Standardized environments: the same software stack across all platforms, reducing troubleshooting burden and making community support easier.

Documentation

For full documentation (usage guide, development reference, and per-image specifications) see:

Docker images documentation

Usage

Requirements:

  • CPU images: Docker
  • NVIDIA GPU images: Docker + NVIDIA Container Toolkit + host driver >= 570.x
  • Mac images: Docker Desktop for Apple Silicon

With VS Code (recommended): Use one of the devcontainer repositories as a template to start a new project on GitHub, clone it, and then open the clone directory using VS Codes's Command Palette (Ctrl+Shift+P) and run Dev Containers: Open Folder in Container. The devcontainer configuration environment set-up and contains a standard project layout.

Standalone with JupyterLab: expose port 8888 and launch the server:

# CPU
docker run --rm -it -p 8888:8888 -v $(pwd):/workspace \
  gperdrizet/datascience-cpu:latest \
  jupyter lab --ip=0.0.0.0 --no-browser --allow-root

# NVIDIA GPU
docker run --rm -it --gpus all -p 8888:8888 -v $(pwd):/workspace \
  gperdrizet/datascience-nvidia:latest \
  jupyter lab --ip=0.0.0.0 --no-browser --allow-root

Replace the image name with whichever family and variant you need. The -v $(pwd):/workspace flag mounts your current directory into the container so files persist after the container stops.

Image families

datascience

Python CUDA JupyterLab NumPy pandas SciPy Matplotlib Seaborn Plotly scikit-learn XGBoost Optuna

Lightweight intro ML environment. Covers Python, data wrangling, visualization, and classical machine learning. No deep learning frameworks; keeps the image small and fast. The NVIDIA variant adds GPU-accelerated arrays via CuPy.

deeplearning

Python CUDA JupyterLab PyTorch TensorFlow Keras NumPy pandas scikit-learn Optuna

Full deep learning stack with both TensorFlow 2.17 and PyTorch 2.11.0 pre-installed and GPU-ready. Built on NVIDIA's official NGC TensorFlow container, with PyTorch and CuPy added via custom-built wheels for wide GPU architecture support (Pascal through Blackwell).

llms

Python CUDA JupyterLab PyTorch Transformers 🤗 Datasets LangChain Gradio

LLM application development. Includes LangChain, LlamaIndex, Hugging Face Transformers, ChromaDB, and API clients for OpenAI, Anthropic, and Ollama. PyTorch is included via a custom-built wheel with wide GPU support. Designed for building and running LLM-powered applications locally.

kaggle

Python CUDA JupyterLab PyTorch TensorFlow Keras RAPIDS NumPy pandas Polars scikit-learn XGBoost LightGBM CatBoost Optuna

Mirror of the Kaggle notebook submission environment. Package versions are pinned to match a Kaggle notebook pip freeze so code runs identically when submitted to competitions. The NVIDIA variant also includes the RAPIDS stack (cuDF, cuML, CuPy) and a custom PyTorch wheel with Pascal support, fixing a defect in Kaggle's own stock wheel.

License

The Dockerfiles, scripts, and documentation in this repository are licensed under the MIT License. Built images incorporate third-party base images with their own upstream licenses.