Skip to content

Containers

Spheron Con runs a public Docker image on a GPU or a CPU, without a virtual machine to look after. Pick a size, pick an image, and the container comes up with SSH and public ports, usually within a few minutes. It is billed by the hour, like any other instance.

In the dashboard, containers are an instance type, Dedicated Containers, inside Deploy GPUs and Deploy CPU. A card that is also sold as a container lists Dedicated Containers next to Spot VMs and Dedicated VMs, with its own "from" price and stock. A GPU sold only as a container opens straight on Dedicated Containers.

When to use a container

You want toUse
Run an image for a few hours: a vLLM or Ollama server, a training image, JupyterContainer
Start from a ready image without installing drivers, CUDA or PythonContainer
Pay only for storage between sessions on a GPU, and come back to the same filesGPU container with Stop, or a Spheron Con volume
Run your own operating system, kernel modules, Docker or systemd servicesGPU instance or CPU node
Use spot pricing, bare metal, or multi-node clustersGPU instance
Run a startup script (cloud-init)GPU instance or CPU node

A container is not a full machine. It runs one image as its main process. There is no cloud-init, no access to the host, and no Docker inside the container. Choose a virtual machine when you need any of those.

What you get

GPU containersCPU containers
Sizes28 GPU types, from RTX 2000 Ada and A40 up to H100, H200, B200 and B300, in 1, 2, 4 or 8 GPU sizes2, 4, 8, 16 or 32 vCPU, in compute, general purpose and memory optimized families
Disk100 GB container disk and a 500 GB volume at /workspace10 GB of container disk per vCPU, up to 100 GB
Stop and StartYesNo
RestartYesYes
VolumesOne Spheron Con volume, at /workspaceOne Spheron Con volume
Instance typeDedicated Containers (on-demand)Dedicated Containers (on-demand)
RegionsNorth America, Europe and Asia (Japan)North America, Europe and Asia (Japan)

The vCPU and memory shown for a GPU container are minimums: the container gets at least that much. Availability changes quickly, and the wizard only offers what is in stock.

Templates

Start from a template, or type any public image.

TemplateComputeImageOSConnect
PyTorch 2.11GPUpytorch/pytorch:2.11.0-cuda12.8-cudnn9-runtimeUbuntu 24.04SSH
CUDA 12.8 toolkitGPUnvidia/cuda:12.8.1-cudnn-devel-ubuntu24.04Ubuntu 24.04SSH
vLLM serverGPUvllm/vllm-openai:latestUbuntu 22.04SSH, OpenAI-compatible API
SGLang serverGPUlmsysorg/sglang:v0.5.22-runtimeUbuntu 24.04SSH, API
OllamaGPUollama/ollama:latestUbuntu 24.04SSH, API
Open WebUIGPUghcr.io/open-webui/open-webui:ollamaDebian 13SSH, browser
TensorFlow 2.21GPUtensorflow/tensorflow:2.21.0-gpuUbuntu 22.04SSH
Jupyter Lab with PyTorchGPUquay.io/jupyter/pytorch-notebook:cuda12-latestUbuntu 24.04Browser
Ubuntu 24.04, Ubuntu 22.04, Debian 12CPUubuntu:24.04, ubuntu:22.04, debian:12SameSSH
Python 3.13, Node.js 24, Go 1.27, RustCPUpython:3.13-slim-bookworm, node:24-bookworm-slim, golang:1.27-bookworm, rust:1-bookwormDebian 12SSH
Jupyter LabCPUquay.io/jupyter/minimal-notebook:latestUbuntu 24.04Browser

The PyTorch and CUDA templates run CUDA 12.8, which B200 and RTX 50 series GPUs need.

The vLLM and SGLang templates serve Qwen/Qwen2.5-1.5B-Instruct by default. Change the model in the start command under Customize before you deploy.

Custom image: type any public image from Docker Hub, GHCR, Quay or another registry. Spheron checks it as you type and tells you whether it exists and whether SSH will work on it. Private images are not supported yet.

Pricing and billing

  • Billed from the moment it runs. A container is billed from the moment its machine starts, including while its image downloads, because the machine is reserved for you from then. Its card shows Running with Downloading the image or Starting the container until you can connect.
  • The same minimum runtime as a virtual machine. A container can be terminated 20 minutes after it starts, or later where its machine type sets a longer minimum.
  • Storage is included while it runs. The container disk and the /workspace volume are folded into the hourly price.
  • Stopped GPU containers bill storage only. A stopped GPU container bills only its 500 GB /workspace volume, at about $0.24 per GB per month: about $0.16 per hour. The deploy page and the Stop dialog both show the exact stopped rate.
  • A Spheron Con volume stores for less. A Spheron Con volume costs about $0.084 per GB per month, whether the container runs or not. For a container you stop often, keep files on a volume: 100 GB costs about $0.012 per hour, against about $0.16 for the stopped built-in volume.
  • Your own volume lowers the container's price. A Spheron Con volume takes /workspace in place of the built-in 500 GB volume, and the built-in volume's cost, about $0.08 per hour, is taken off the container's hourly price. The volume bills as a volume. A stopped container on its own volume bills nothing for the container itself. See Spheron Con volumes.
  • On-demand only. Containers have no spot pricing.

CPU containers start at about $0.08 per hour for 2 vCPU. GPU container prices are shown per offer in the wizard.

Deploy from the dashboard

Open Deploy GPUs or Deploy CPU

In the Spheron dashboard, click Deploy GPUs or Deploy CPU in the sidebar under Compute. On a card that is also sold as a container, choose Dedicated Containers, next to Spot VMs and Dedicated VMs. A GPU sold only as a container opens straight on Dedicated Containers.

Old /deploy-containers links open Deploy GPUs, or Deploy CPU for /deploy-containers?type=cpu, and switch to Dedicated Containers on the first card you pick.

Configure Instance (step 1)

Pick the GPU and count, or the vCPU size, and the region, as you would for a virtual machine.

Container (step 2)

Pick a template, with the SSH-ready ones on top, or choose Custom image and type an image.

Open Customize to set:

  • Start command: replaces the image's own command, as one shell-style line.
  • Open ports: up to 9, separated by commas, for example 8888, 8000. Each gets its own public address.
  • Environment variables: up to 50. Spheron passes the values to the container at start and keeps only their names.

SSH Key (step 3)

Pick an SSH key and, optionally, a Spheron Con volume in the same region. A browser-only image, such as Jupyter, skips SSH Key: its volume picker and Deploy Instance button sit under the Container step.

Deploy

Review the order summary and click Deploy Instance. For a GPU container, the deploy page also shows the exact rate it bills while stopped. The card shows Running with Downloading the image while the image downloads, then the connection details once the container is up.

Connect to a container

SSH

Spheron sets up SSH with your key on any image that runs as root, usually within a minute of start, even when the image has no SSH server of its own. Copy the command from the instance card:

# The user is root; the port is the container's public SSH port
ssh -p <port> root@<ip-address>

Shell images such as Ubuntu, Python and PyTorch stay up with no start command, so you can SSH in and work.

Browser

Each exposed port has its own public address, shown on the instance page under the container's browser access:

http://<ip-address>:<public-port>
  • Jupyter templates run as a non-root user and have no SSH. The instance page shows the sign-in token and an Open Jupyter Lab signed in button.
  • Open WebUI creates your admin account when it starts and closes sign-ups, so nobody who finds the address can register first. Sign in as admin@example.com with the password shown on the instance page. It is generated for each deploy.

A port with nothing listening on it refuses the connection. Start your service on 0.0.0.0 and the port you exposed.

Files and storage

  • Keep files in /workspace. Everything outside /workspace is erased on Stop or Restart. On a GPU container, /workspace survives both.
  • Terminate deletes everything except an attached Spheron Con volume.
  • Share data across containers with a Spheron Con volume. Several containers in the same region can use one volume at once.

Stop, Start and Restart

ActionGPU containerCPU container
StopKeeps /workspace and an attached volume; everything else on the container disk is reset. Bills only the /workspace volume, about $0.16 per hour.Not available. Terminate it instead.
StartComes back on the same machine, with new public portsNot available
RestartRestarts in place at the same rate. Only /workspace and an attached volume keep their files.Same as GPU

How containers appear in the dashboard

  • Instance cards show the container's image as its operating system, for example PyTorch 2.11 (Ubuntu 24.04).
  • Running with a note: Downloading the image or Starting the container while it is billed but not reachable yet.
  • Amber Running badge: the container ran and now keeps exiting and restarting. Check its image and start command, then restart or terminate it.
  • VMs and containers share the card. On Deploy GPUs and Deploy CPU, one card can list Spot VMs, Dedicated VMs and Dedicated Containers. A container is never a VM: Dedicated Containers deploys a container, and the VM options deploy a virtual machine.

Deploy through the API

List container offers, check the image, and deploy with a container object:

curl "https://app.spheron.ai/api/gpu-offers?computeType=gpu-container&search=a40"
 
curl -X POST "https://app.spheron.ai/api/deployments" \
  -H "Authorization: Bearer <your-api-key>" \
  -H "Content-Type: application/json" \
  -d '{
    "provider": "spheron-con",
    "offerId": "rpg__nvidia-a40__1__CA-MTL-1",
    "gpuType": "A40_PCIE_CONTAINER",
    "gpuCount": 1,
    "region": "CA-MTL-1",
    "instanceType": "DEDICATED",
    "sshKeyId": "your_ssh_key_id",
    "container": { "image": "pytorch/pytorch:latest", "ports": [8888] }
  }'

See Containers in the API reference for every field, the starting state, and the error codes.

Troubleshooting

Issue: The image is not found

Symptoms: The wizard says Not found, or private, or POST /api/deployments returns 400.

Diagnosis: The image name or tag is wrong, or the image is private. Nothing was created or charged.

Resolution: Check the name and tag on the registry. Use a public image.

Issue: The container failed within a few minutes

Symptoms: The card shows Failed with "The container kept stopping right after it started".

Diagnosis: The image or start command exits on its own, so the container never came up. It was shut down within about two minutes and billed only for the minutes it ran.

Resolution: Check the start command. A shell image with a command that finishes, such as echo hello, exits at once; run a long-lived process instead.

Issue: Running, but the address does not answer

Symptoms: The card shows Running with Downloading the image for several minutes.

Diagnosis: A large image is still downloading. Large images, such as vLLM or Open WebUI, can take many minutes on a busy host. A container that has not started after 90 minutes is shut down.

Resolution: Wait for the note to disappear. For faster starts, pick a smaller image.

Issue: Start is refused on a stopped GPU container

Symptoms: Start did not go through, with "that machine's GPU is in use right now".

Diagnosis: Another customer took the GPU on the machine that holds your container.

Resolution: Try again later. Your files are kept. To get a GPU now, terminate the container and deploy a new one; files on a Spheron Con volume carry over.

Issue: There is no SSH command

Symptoms: The instance page shows a browser address instead of an SSH command.

Diagnosis: The image runs as a non-root user, such as the Jupyter images, so SSH cannot be set up on it. Or it was deployed without an SSH key.

Resolution: Use its ports in the browser, or pick an image that runs as root.

What's next