Skip to main content

Using Docker

Wisp supports loading Docker Images into you VM as part of the wisp run command. This allows you to bring your containerized workloads and execute them without having to set up the machine yourself.

In the background, Wisp provisions a VM on the selected cloud provider with a default Machine Image. Wisp then authenticates Docker on that machine, and pulls the specified image. When you execute wisp ssh or run code remotely with wisp run, Wisp forwards you to the running Docker Container by first jumping to the Cloud VM, and then to the locally running container.

Specifying a Docker Image

You can specify a specific docker image in wisp-spec.yml under resources:

resources:
...
docker_image: wisp-images/ubuntu22.04-amd64
...

Specifically, this pulls the Wisp managed Docker Image. You can see more about Wisp managed Docker Images below.

Remote Docker Images

Wisp supports three types of Registries:

  • Public: Images from Dockerhub that can be pulled without authentication are fully supported. Simply paste the image URI as you would with any other Docker command.
  • Private: To pull from private registries, such as GCP Artifacts, you must supply three environment variables to the env entry in the wisp-spec.yml file: To access private registries, such as GCP Artifacts, you need to provide three environment variables in the env section of the wisp-spec.yml file: $DOCKER_USER, $DOCKER_PASS, and $DOCKER_HOST. The method to obtain these credentials varies by provider. For detailed instructions, refer to the provider's documentation on Docker Credentials. Here are the guides for major cloud providers: AWS ECR, GCP Artifact Registry, Azure.
  • Wisp Managed: Wisp Manages basic images that you can use free of charge. To use them, simply supply the image name (refer to the table below), and Wisp will pull it.

Custom Images

You can use your own image, but certain requirements must be met for Wisp to be able to manage the runtime:

  • Default user must have root access.
  • Must be based on Debian or Ubuntu.
  • Must have the following dependencies installed: wget rsync jq screen openssh-server openssh-client ca-certificates gnupg.
  • Must support x86_64 architecture.

Wisp Images

The following images can be used without further setup in Wisp:

Image NameTagsNotes
wisp-images/ubuntu22.04-amd64latest, cuda-12.4.0AMD64 (x86-64) Ubuntu image with essential tools pre-installed. CUDA, CuDNN and Conda pre-packaged!
wisp-images/ubuntu22.04-arm64latest, cuda-12.4.0ARM64 Ubuntu image with essential tools pre-installed. CUDA, CuDNN and Conda pre-packaged!