Base images with cuda support for varioud ML-related python workloads:
- Inference APIs
- Jupyter Environments
- Cluster Workers
All images are divided into two categories:
-
Base images Provide basic image with python, tini, gpg and CUDA-drivers if applicable
-
Target images Provide task-specific software and configuration
2.1 Jupyter environments Image with pre-installed jupyter as well as multiple useful utilities. Jupyter Server is protected with password by default. You could either use default password or set your own via
docker run -e PASSWORD="..." ...
. Exposed port is 8888.2.2 SSH-accessible environemnts Image with pre-installed and configured openssh-server and a script, that populates the system with either authentication option: password, single public key or whole ~/.ssh/authroized_keys file
To run those images you will need Docker or any other container platform. In case of gpu system - docker must be configured with nvidia-docker2. Example script to run container is below:
docker run \
--gpus=all \
--ipc=host \
-p 8888:8888 \
-v `pwd`/notebooks:/workspace/notebooks \
-v `pwd`/data:/workspace/data \
-d \
--name basic-ml \
rexhaif/basic-ml:jupyter-cuda11.6-cudnn8-devel
To run SSH-accessible container use this script:
docker run \
--gpus=all \
--ipc=host \
-p 2222:22 \
-e AUTHORIZED_KEYS="`cat ~/.ssh/authorized_keys`" \
-e PUBLIC_KEY="ssh-ec25519 ..." \
-e PASSWORD="the-password" \
-v `pwd`/projects:/workspace/code \
-v `pwd`/data:/workspace/data \
-d \
--name basic-ml \
rexhaif/basic-ml:ssh-cuda11.6-cudnn8-devel
You can choose any suitable option to configure authentication, either with one of AUTHORIZED_KEYS / PUBLIC_KEY / PASSWORD, or with all of them simultaneously. Port 2222 from -p 2222:22
can be changed to any port of your choice.