Docker Containerization Guidelines#
Important
When the Docker Env
is ready to use, the details of which are available below,
click to continue to the quickstart section
Checking the build scikit-plots.
See also
π Docker Containerization#
π‘ Work on Docker Desktop or Github Codespaces
Hereβs how containerization works:
Isolation: Containers run independently of each other and the host system, ensuring that they donβt interfere with other applications or containers.
Portability: Since containers include everything the application needs to run, they can be moved between different environments (like from development to production) without any compatibility issues.
Efficiency: Containers are more lightweight than virtual machines (VMs) because they share the host OSβs kernel rather than running their own separate operating system. This makes them faster and more resource-efficient.
Consistency: The application inside the container runs the same way regardless of where itβs deployed, ensuring consistency across environments.
Github Codespaces Guide#
(Connect IDE Interface Vscode or Jupyter Notebook)
Choose (recommended) not (default) Option for best practise



Docker Desktop Guide#
## 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 IDE (Vscode/Jupyter) and/or NVIDIA GPU driver
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.
π·οΈ Docker Compose Quickstart Guide#
π‘ 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#
βΆοΈ Connect Docker Container Especially When Docker-GUI dont available
#
# docker-compose up --build notebook_cpu
docker ps # check running containers
docker logs CONTAINER_ID_OR_NAME # find jupyter (token) http address 127.0....
docker exec -it CONTAINER_ID_OR_NAME bash # Connect interactive terminal
βΆοΈ Run setup_vscode_ext.sh#
## (Optionally) Install common vscode extensions
##β
c/C++/Python and Jupyter Notebook
##β
Linter and Formatter
bash docker/script/setup_vscode_ext.sh # (not needed every time)
βΆοΈ Run post_create_commands.sh#
##π (recommended) Only Installed by `Codespaces default` option
##β
directories to mark as safe
##β
fetching submodules
##β
add remote upstream
##β
fetch tags from upstream
##β
create a new environment with python 3.11
##β
install required packages
##β
install pre-commit hooks
##β
install the development version of scikit-plots
# bash .devcontainer/script/post_create_commands.sh # (not needed every time)
bash docker/script/post_create_commands.sh # (not needed every time)
π― 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
π 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
π₯οΈ 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

π Now youβre ready to run Jupyter notebooks in Docker! π