Docker ImagesΒΆ

Valohai utilizes Docker images to define your runtime environment. This means that the platform is capable of running any code from C to Python as long as it can run inside a Docker container.

You can use any Docker image available online. After getting initial versions working, it makes sense to package your dependencies by building your own images.

We recommend hosting your images on Docker Hub but you can use any Docker registry. You can configure authenticated access under organization settings.

Here are the most common Docker images currently used on the platform:

ufoym/deepo:all-py36                     # good for initial prototyping
ufoym/deepo:all-py36-cpu                 # good for initial prototyping
tensorflow/tensorflow:<VERSION>-gpu-py3  # e.g. 1.15.0, for GPU support
tensorflow/tensorflow:<VERSION>-py3      # e.g. 1.15.0, for CPU only
pytorch/pytorch:<VERSION>                # e.g. 1.3-cuda10.1-cudnn7-runtime
continuumio/miniconda:<VERSION>          # e.g. 4.7.10
python:<VERSION>                         # e.g. 3.8.0
r-base:<VERSION>                         # e.g. 3.6.1
julia:<VERSION>                          # e.g. 1.3.0
bash:<VERSION>                           # e.g. 5.0.11, for light scripting
busybox:<VERSION>                        # e.g. 1.13.1, for light scripting

Which images to use depend on your specific use-case, but it usually makes sense to:

  • start with as minimal image as possible
  • use a specific image tag (the :<VERSION> part) so everything stays reproducible

Access Private Docker RepositoriesΒΆ

Organizations can use private repositories from Docker Hub or Azure Container Registry for Valohai executions.

Create an Access token on Docker Hub or a service principal for Azure Container Registry to generate credentials that Valohai can use to access your private repository.

  1. Login at https://app.valohai.com
  2. Navigate to Hi, <name> (the top right menu) > Manage <organization>.
  3. Go to Registries under the organization controls
  4. Add a new entry
  5. Insert the name in the format of docker.io/myusername/* or myregistry.azurecr.io/*.
  6. Use the previously generated credentials as the username and password (Docker username and access token or Azure Service Principal credentials)

To use a private Docker image in your executions specify the image in the step of your valohai.yaml using the full name like docker.io/myusername/name:tag.