Docker Desktop or Github Codespaces#

Important

When the Docker Env is ready to use, click to continue to the quickstart section Initialize and Fetch Submodules.

πŸš€ Docker#

πŸ’‘ Work on Docker Desktop or Github Codespaces

Github Codespaces#



Docker Desktop#

# Forked repo: https://github.com/scikit-plots/scikit-plots.git
git clone https://github.com/YOUR-USER-NAME/scikit-plots.git
cd scikit-plots/docker

##  Use terminal or open to vscode to run docker compose
code .

Docker Environment Setup for Jupyter and/or NVIDIA GPU

This repository contains Docker & Docker Compose configurations for running Jupyter Notebooks with optional NVIDIA GPU support.

You can run containers with either host-installed CUDA or pre-installed CUDA inside the container.

πŸ“‚ Folder Structure#

docker/
β”œβ”€β”€ docker-compose.yml           # Primary Docker Compose file
β”œβ”€β”€ docker-compose.override.yml  # Optional override file (auto-included if present)
β”œβ”€β”€ Dockerfile                   # Custom Dockerfile
β”œβ”€β”€ script/
β”‚   β”œβ”€β”€ install_gpu_nvidia_cuda.sh  # GPU setup script

🏷️ Quick Start (Docker Compose)#

πŸ’‘ The easiest way to launch the environment is using Docker Compose.

▢️ Run Docker Env Jupyter Notebook (CPU only)

docker compose up --build notebook_cpu

▢️ Run Docker Env Jupyter Notebook (With NVIDIA Host GPU)

docker compose up --build app_nvidia_host_gpu_driver

▢️ Run Docker Env Jupyter Notebook (With NVIDIA Internal CUDA GPU)

docker compose up --build app_nvidia_internal_gpu_driver

▢️ Run Docker Env Jupyter Notebook by VS Code

🚯 Stop Containers#

docker compose down

🐳 Docker Compose Configuration

This project is based on Docker Compose and includes multiple services:

πŸ”Ή notebook_cpu (CPU-Only)

Runs Jupyter Notebook using jupyter/tensorflow-notebook:latest

No CUDA support, best for lightweight tasks

Mounts the local folder scikit-plots to /home/jovyan/work

Runs on port 8888

πŸ”Ή app_nvidia_host_gpu_driver (Uses Host CUDA)

Runs Jupyter Notebook using jupyter/tensorflow-notebook:latest

Uses host-installed CUDA for GPU acceleration

Requires NVIDIA runtime enabled (–runtime=nvidia)

Runs on port 8889

πŸ”Ή app_nvidia_internal_gpu_driver (CUDA Inside Container)

Runs nvidia/cuda:12.6.3-cudnn-runtime-ubuntu24.04 with pre-installed CUDA

Includes NVIDIA GPU support without needing host CUDA

Requires NVIDIA runtime (–runtime=nvidia)

Runs on port 8890

πŸ› οΈ Custom Docker Commands#

If you need more control, you can use Docker CLI commands.

▢️ Build & Run the Container Manually

docker build -t my-custom-container -f docker/Dockerfile .
docker run -it --rm -p 8888:8888 my-custom-container

▢️ Check GPU Availability Inside Container

docker exec -it <container_id> nvidia-smi

πŸ–₯️ Useful References#

πŸ“š Jupyter Docker Stacks: Read the Docs

πŸ“š Docker Compose: Official Docs

πŸ“š Dockerfile Best Practices

πŸ“š LocalStack Installation with Docker Compose

πŸ“š NVIDIA CUDA in Containers: NVIDIA Docs

https://developer-blogs.nvidia.com/wp-content/uploads/2016/06/nvidia-docker.png

πŸš€ Now you’re ready to run Jupyter notebooks in Docker! 😊