How to Create GPU Droplets

Last verified 11 Aug 2026

DigitalOcean Droplets are Linux-based virtual machines (VMs) that run on top of virtualized hardware. Each Droplet you create is a new server you can use, either standalone or as part of a larger, cloud-based infrastructure.

GPU Droplets have GPUs in a single or 8 GPU configuration. They also come with two different kinds of storage: a boot disk for persistent data and a scratch disk for non-persistent data. Learn more about GPU Droplet plans and features.

We provide AI/ML-ready images for GPU Droplets that have drivers and software from AMD and NVIDIA preinstalled, as well as preconfigured 1-Click Models powered by Hugging Face. You can also create GPU Droplets with existing Droplet images, but you need to manually install drivers and other software to use the GPUs.

Note

If you are a newer DigitalOcean customer, we may charge your team’s primary payment method partway through the monthly billing cycle when you create GPU Droplets, but your total cost is not increased. This is a precautionary measure to prevent abuse of our platform.

Create a GPU Droplet in the Control Panel

After you log in to the Control Panel, click the green Create button at the top to open the Create menu, then click GPU Droplet to go to the GPU Droplet creation page.

GPU Droplet Creation Page - DigitalOcean Control Panel

Create a GPU Droplet with the resources you choose.

digitalocean.com

The GPU Droplet creation page has similar sections to the regular Droplet creation page, like choosing a datacenter region, and some different options:

  • Choose an image. We provide AI/ML-ready images for AMD and NVIDIA GPU Droplets which have drivers and software pre-installed. You can also use 1-Click Models which let you deploy popular third-party models directly to GPU Droplets.

    GPU Droplets also work with existing Droplet images, but you need to manually install GPU drivers.

  • Choose a GPU plan. We offer single-GPU and 8-GPU plans. For supported GPUs, choose either on-demand or spot capacity. To compare the capacity tiers, see Spot GPU Droplets vs On-Demand GPU Droplets. GPU Droplets also include a scratch disk, which is a non-persistent disk for staging data.

    Note

    Spot GPU Droplets are in public preview. Spot GPU Droplet pricing is separate from on-demand pricing and may change daily based on available idle GPU capacity.

  • Enable backups. Backups let you restore your Droplet if it fails. Configure the backup frequency and retention period based on your recovery requirements. Backups of GPU Droplets include the boot disk but not the scratch disk. Backup costs depend on the plan you choose; see Backups pricing for details.

  • Add additional storage. DigitalOcean Volumes Block Storage provides network-attached, SSD-backed block storage. You can move a volume between compatible Droplets and GPU Droplets by detaching it from one Droplet and attaching it to another.

  • Add an SSH key for authentication. Add an SSH key pair to securely connect to your GPU Droplet.

  • Configure networking. A private IPv4 address is always assigned for traffic within the same VPC. Public IP addresses are optional:

    • Public IPv4 address. Allows the GPU Droplet to send and receive traffic over the public internet. Disable it to restrict the Droplet to private VPC traffic.
    • Public IPv6 address. Enables the GPU Droplet to send and receive IPv6 traffic over the public internet.
  • Enable Metrics. Select Improved Metrics and Monitoring to enable GPU Observability in Insights automatically, allowing do-agent to detect the GPU type and integrate with the appropriate exporter (DCGM for NVIDIA or ROCm for AMD) to collect and send GPU metrics securely. For details about available GPU metrics, see the Monitoring Metrics page.

    Note

    The power throttling GPU metric is currently available only for AMD GPUs. NVIDIA support is planned but not yet available. To use AMD GPUs, contact support to request access.

For Basic Images, you can enable GPU metrics by manually installing the exporter, binding it to 127.0.0.1, reconfiguring do-agent to scrape it, and restarting do-agent.

Once you finish selecting your options, click Create GPU Droplet. GPU Droplets generally take longer than non-GPU Droplets to initialize, particularly for 8 GPU Droplets, so allow some time for this process to finish.

Create a GPU Droplet Using the DigitalOcean API or CLI

When creating a GPU Droplet using the DigitalOcean API or CLI, you need to provide values for:

  • The region, the string for the desired datacenter.
  • The size, the slug that specifies the Droplet plan.
  • The image, the slug that specifies the base image.

You can view slugs for all GPU Droplet plans and details on AI/ML-ready and inference-optimized images.

How to Create a New Droplet Using the DigitalOcean CLI
  1. Install doctl, the official DigitalOcean CLI.

  2. Create a personal access token and save it for use with doctl.

  3. Use the token to grant doctl access to your DigitalOcean account.

    doctl auth init
  4. Finally, run doctl compute droplet create. Basic usage looks like this, but you can read the usage docs for more details:

    doctl compute droplet create <droplet-name>... [flags]

    The following example creates a Droplet named example-droplet with a two vCPUs, two GiB of RAM, and 20 GBs of disk space. The Droplet is created in the nyc1 region and is based on the ubuntu-20-04-x64 image. Additionally, the command uses the --user-data flag to run a Bash script the first time the Droplet boots up:

    doctl compute droplet create example-droplet --size s-2vcpu-2gb --image ubuntu-20-04-x64 --region nyc1 --user-data $'#!/bin/bash\n touch /root/example.txt; sudo apt update;sudo snap install doctl'

    Please note: In Windows Powershell, the example command would be the following instead:

    doctl compute droplet create example-droplet --size s-2vcpu-2gb --image ubuntu-20-04-x64 --region nyc1  --user-data "#!/bin/bash`n touch /root/example.txt; sudo apt update;sudo snap install doctl"
How to Create a New Droplet Using the DigitalOcean API

Create a personal access token and save it for use with the API.

cURL

Send a POST request to https://api.digitalocean.com/v2/droplets.

Using cURL:

curl -X POST \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $DIGITALOCEAN_TOKEN" \
  -d '{"name":"example.com","region":"nyc3","size":"s-1vcpu-1gb","image":"ubuntu-20-04-x64","ssh_keys":[289794,"3b:16:e4:bf:8b:00:8b:b8:59:8c:a9:d3:f0:19:fa:45"],"backups":true,"ipv6":true,"monitoring":true,"tags":["env:prod","web"],"user_data":"#cloud-config\nruncmd:\n  - touch /test.txt\n","vpc_uuid":"760e09ef-dc84-11e8-981e-3cfdfeaae000"}' \
  "https://api.digitalocean.com/v2/droplets"

Go

Using Godo, the official DigitalOcean API client for Go:

import (
    "context"
    "os"

    "github.com/digitalocean/godo"
)

func main() {
    token := os.Getenv("DIGITALOCEAN_TOKEN")

    client := godo.NewFromToken(token)
    ctx := context.TODO()

    createRequest := &godo.DropletCreateRequest{
        Name:   "example.com",
        Region: "nyc3",
        Size:   "s-1vcpu-1gb",
        Image: godo.DropletCreateImage{
            Slug: "ubuntu-20-04-x64",
        },
        SSHKeys: []godo.DropletCreateSSHKey{
            godo.DropletCreateSSHKey{ID: 289794},
            godo.DropletCreateSSHKey{Fingerprint: "3b:16:e4:bf:8b:00:8b:b8:59:8c:a9:d3:f0:19:fa:45"}
        },
        Backups: true,
        IPv6: true,
        Monitoring: true,
        Tags: []string{"env:prod","web"},
        UserData: "#cloud-config\nruncmd:\n  - touch /test.txt\n",
        VPCUUID: "760e09ef-dc84-11e8-981e-3cfdfeaae000",
    }

Ruby

Using DropletKit, the official DigitalOcean API client for Ruby:

require 'droplet_kit'
token = ENV['DIGITALOCEAN_TOKEN']
client = DropletKit::Client.new(access_token: token)

droplet = DropletKit::Droplet.new(
  name: 'example.com',
  region: 'nyc3',
  size: 's-1vcpu-1gb',
  image: 'ubuntu-20-04-x64',
  ssh_keys: [289794,"3b:16:e4:bf:8b:00:8b:b8:59:8c:a9:d3:f0:19:fa:45"],
  backups: true,
  ipv6: true,
  monitoring: true,
  tags: ["env:prod","web"],
  user_data: "#cloud-config\nruncmd:\n  - touch /test.txt\n",
  vpc_uuid: "760e09ef-dc84-11e8-981e-3cfdfeaae000",
)
client.droplets.create(droplet)

Python

Using PyDo, the official DigitalOcean API client for Python:

import os
from pydo import Client

client = Client(token=os.environ.get("DIGITALOCEAN_TOKEN"))

req = {
  "name": "example.com",
  "region": "nyc3",
  "size": "s-1vcpu-1gb",
  "image": "ubuntu-20-04-x64",
  "ssh_keys": [
    289794,
    "3b:16:e4:bf:8b:00:8b:b8:59:8c:a9:d3:f0:19:fa:45"
  ],
  "backups": True,
  "ipv6": True,
  "monitoring": True,
  "tags": [
    "env:prod",
    "web"
  ],
  "user_data": "#cloud-config\nruncmd:\n  - touch /test.txt\n",
  "vpc_uuid": "760e09ef-dc84-11e8-981e-3cfdfeaae000"
}

resp = client.droplets.create(body=req)

We can't find any results for your search.

Try using different keywords or simplifying your search terms.